class myclass
{
private Semaphore _sync;
myclass ()
{
_sync = new Semaphore(1,1);
}
doasync()
{
_sync.WaitOne();
//do some stuff
_sync.Release();
}
}
somefunctionsomewhere()
{
var myobject = new myclass();
//spawn 100 threads that all call myobject.doasync()
}
以上安全+干净吗?当所有 100 个线程都完成它们的异步工作时,是否会同时处理 _sync 和 myclass ?
如果没有,知道何时调用 _sync.Dispose() 的最佳方法是什么?