gpt4 book ai didi

Silverlight 异步 API 导致挂起和无响应

转载 作者:行者123 更新时间:2023-12-04 02:53:25 25 4
gpt4 key购买 nike

此代码导致 Silverlight 挂起。如果我删除 ManualResetEvent 代码,则没有任何 react

        private ManualResetEvent mre = new ManualResetEvent(false);

...

WebClient sender = new WebClient();
sender. += new OpenReadCompletedEventHandler(this.ReadComplete);
sender.OpenReadAsync(new Uri(this.url+"?blob="+BODY, UriKind.Relative));

mre.WaitOne();

}
public bool T = false;
public void ReadComplete(object sender, OpenReadCompletedEventArgs e)
{

mre.Set();
}

最佳答案

您不能在 UI 线程中阻塞(参见“mre.WaitOne”)。如果您绝对需要 WaitOne,则必须在单独的线程中运行您的代码。这可以按如下方式完成:

var t = new Thread(delegate()
{
//...
mre.WaitOne();
//...
});

人们会期望回调中的“mre.Set()”会被触发。但是,我遇到了同样的问题,很明显,OpenReadAsync 回调机制使用 UI 线程作为中间调度程序。该调度无法发生,它正在等待事件被设置。

关于Silverlight 异步 API 导致挂起和无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com