ふらっとC#,C♯,C#(初心者用) Part41
■ このスレッドは過去ログ倉庫に格納されています
0691デフォルトの名無しさん
2009/06/19(金) 11:16:33//C#での実装(失敗、デッドロックする)
//※インデントに全角空白*2を使用
public class ThreadMain{
private EventWaitHandle lockObj;
public ThreadMain(EventWaitHandle lockObj){
this.lockObj = lockObj;
}
public void run(){
lock(lockObj){ //ここには入れない
Console.WriteLine("sub in sync");
lockObj.Set();
Console.WriteLine("sub out sync");
}
}
}
public void test(){
EventWaitHandle lockObj = new EventWaitHandle(false, EventResetMode.AutoReset);
ThreadMain tm = new ThreadMain(lockObj);
Thread t = new Thread(tm.run);
lock(lockObj){
t.Start();
Console.WriteLine("main in sync");
lockObj.WaitOne(); //ここで待機中の間だけlockObjを解放したい
Console.WriteLine("main out sync");
}
}
■ このスレッドは過去ログ倉庫に格納されています