【发布时间】:2020-03-02 18:23:49
【问题描述】:
我想知道在主要问题是资源锁定(例如 COM 端口访问)的情况下,任务有多好。
如果我的任务是这样的:
Task
{
lock(resource)
{
resource.doSomething();
}
};
它的本质是等到资源空闲,然后使用它。
我的问题是:如果资源被锁定,任务是返回任务队列,还是线程被锁定直到资源空闲?
我的理解是,如果任务被锁定,在这种场景下,最好使用线程来避免锁定线程填充线程池,对吗?
【问题讨论】:
-
不,它不会返回任务。其他线程被阻止获取锁(资源除外),一直等到锁被释放。
-
你想要async lock? Here 是另一个讨论。
标签: c# multithreading threadpool