作者cole945 (躂躂..)
看板C_Sharp
标题Re: [问题] Thread 与 Class 一问...
时间Thu Nov 15 00:39:36 2007
※ 引述《KENyroj (难得一身鸡蛋糕...)》之铭言:
: 谢谢大大的指教... 我在这方面的实作上碰到了盲点...
: 如同大大所言, 我在这个包含了 Thread 的 class 里写了个 public 的 bool IsStop;
: 然後在 DoThing 的 method 里写的就是 while(!IsStop) { ... }
: 然後这个 ThreadClass 定义了个Stop()方法, 目前的做法就是 IsStop = false;
: 但是这样一来产生了一个问题... 因为其实 while 里面是一个 server物件 的 Listen
: 程式检查过一次 IsStop 是 false 後, 就让那个 Server 物件去 Listen...
: 在这其间, IsStop 若有任何变更, 其实 Server物件不会停止 Listen
: 要等它 Listen 完後, 要再一次开始Listen 时才会去检查那个 IsStop...
: 不知有没有其它作法, 还是我的做法有什麽地方可以改进的 ^^"
改进方法就是使用 Abort() 囧"
在下建议一个写法~
try
{
while (true)
{
// 在这在做你想要做的事
}
}
catch (ThreadAbortException e)
{
// 当 Thread.Abort() 被呼叫时, 该thread会收到此 exception
// 此时就可以做一些收尾的事情~
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.131.58
1F:推 reptile0426:这是目前正解吗?我目前是这样写 还有更好的方法? 11/16 23:21