我刚接触C#,请多指教!
目前为止,我有一个控制台应用程序,可以监听客户端连接并相应地回复客户端。
我还有一个带有按钮和文本框的WPF表单。该按钮启动一些代码作为BackgroundWorker连接到服务器,然后等待响应,然后将其附加到文本框的末尾。
这个方法很好,一次或两次都没问题。但是它总是崩溃 - 原来DoWork块根本没有被调用,直接进入RunWorkerCompleted。当然,结果为空,因此尝试将其转换为字符串会失败。
这是一个新手错误吗?我已经尝试在互联网上搜索了以上内容的各种方式,但没有找到任何有用的信息...
到目前为止,这是我的代码:http://pastebin.com/ZQvCFqxN - 由于我试图找出到底出了什么问题,所以有很多调试输出。
这是调试输出的结果:http://pastebin.com/V412mppX
非常感谢您给予的任何帮助。谢谢!
编辑:相关的代码后缀(感谢下面的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);
}