【发布时间】:2013-12-03 18:45:52
【问题描述】:
我不清楚(也找不到足够清楚的文档):在异步方法中使用 lock 关键字时:如果对象已经被阻塞,线程会被阻塞还是返回挂起状态的任务(不是阻塞线程,释放锁时返回)?
在下面的代码中,行会阻塞线程吗?如果它阻塞线程(这是我的想法),是否有标准的不阻塞解决方案?我正在考虑使用AsyncLock,但首先我想尝试一些标准的东西。
谢谢。
private object myLock = new object();
private async Task MyMethod1(){
lock (myLock ) {// <---- will this line cause a return of the current method as an Await method call would do if myLock was already locked.
....
}
}
// other methods that lock on myLock
【问题讨论】:
-
接受错误答案
标签: c# multithreading