gpt4 book ai didi

C# BackgroundWorker 跳过 DoWork 直接进入 RunWorkerCompleted

转载 作者:行者123 更新时间:2023-11-30 14:13:45 26 4
gpt4 key购买 nike

我是 C# 的新手,所以请放轻松!

到目前为止 - 我有一个控制台应用程序可以监听客户端连接并相应地回复客户端。

我还有一个带有按钮和文本框的 WPF 表单。该按钮启动一些代码以作为 BackgroundWorker 连接到服务器,然后等待响应,然后将其附加到文本框的末尾。

这一次效果很好。有时两次。但随后它一直崩溃——事实证明根本没有调用 DoWork block ,它直接进入 RunWorkerCompleted。当然,.result 是空白的,因此尝试将其转换为字符串会失败。

这是菜鸟的错误吗?我曾尝试在互联网上搜索各种表达上述内容的方式,但没有发现任何有用的东西......

到目前为止,这是代码:http://pastebin.com/ZQvCFqxN - 我有很多调试输出试图找出到底出了什么问题。

这是调试输出的结果:http://pastebin.com/V412mppX

非常感谢任何帮助。谢谢!

编辑:相关代码 post-fix(感谢下面的 Patrick Quirk)是:

public void dorequest(string query)
{
request = new BackgroundWorker();
request.WorkerSupportsCancellation = true;
request.WorkerReportsProgress = true;
request.ProgressChanged += request_ProgressChanged;
request.DoWork += request_DoWork;
request.RunWorkerCompleted += request_RunWorkerCompleted;
request.RunWorkerAsync(query);
}

最佳答案

您在调用 RunWorkerAsync 后附加您的 DoWork 处理程序。翻转它们,应该可以解决问题。

另外,以后请在您的问题中粘贴代码,而不是使用外部站点。并尽可能提供最少量的代码来演示问题。让我们和可能遇到相同问题的人更轻松。

关于C# BackgroundWorker 跳过 DoWork 直接进入 RunWorkerCompleted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520949/

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