这对你来说可能听起来很奇怪,但我每次都懒得写
if (threadAlive)
{
threadAlive = false;
}
else
{
threadAlive = true;
}
Run Code Online (Sandbox Code Playgroud)
是不是有像int ++或int--这样的东西将bool值改为与其值相反?
AutoResetEvent receiver = new AutoResetEvent(false);
Thread t = null;
t = new Thread(new ThreadStart(() =>
{
while (Browser.ReadyState != WebBrowserReadyState.Complete) // error
{
Thread.Sleep(10);
}
receiver.Set();
t.Abort();
}));
t.Start();
// Timeout
success = receiver.WaitOne(10000);
Run Code Online (Sandbox Code Playgroud)
浏览器是
public WebBrowser Browser { get; set; }
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么会出现这样的错误.Browser.ReadyState是枚举类型WebBrowserReadyState
所以你怎么看?
编辑:
第一:
第二:
好吧,我真的不知道我的代码有什么问题,以及发生了什么
class Activity
有以下方法
protected struct EventParams
{
public object sender;
public EventArgs e;
}
private EventParams WaitEventRaise_Body(ref EventHandler<EventArgs> handler, int timeout)
{
AutoResetEvent receiver = new AutoResetEvent(false);
EventParams result = new EventParams();
EventHandler<EventArgs> handle = new EventHandler<EventArgs>((sender, e) =>
{
result.e = e;
result.sender = sender;
receiver.Set();
});
handler += handle;
if (timeout > 0)
{
receiver.WaitOne(timeout);
}
else
{
receiver.WaitOne();
}
return result;
}
protected EventParams WaitEventRaise(ref EventHandler<EventArgs> handler)
{
return WaitEventRaise_Body(ref handler, -1);
}
protected EventParams WaitEventRaise(ref …
Run Code Online (Sandbox Code Playgroud)