运行HTTP服务器的C#BackgroundWorker,修改主机线程上的控件';s形
这是一个艰难的一个 我有一个在BackgroundWorker中运行HTTP服务器的C#应用程序,它允许用户输入数据,这些数据应该实时显示在主窗体上。HTTP服务器基本上运行在do/while(true)循环中,该循环始终等待HTTP响应。因此,它必须在BackgroundWorker中运行,以便程序在等待web用户时不会停止响应。但是,当用户输入数据时,我希望后台工作人员更新主窗体上的数据 我已经尝试将主窗体的函数公开,但这会导致运行时异常,因为访问窗体控件的线程不是创建它们的线程 我曾考虑过只使用BW的ProgressChanged事件,但我必须传递大量数据,而且传递的不仅仅是一个字符串会更好。我可以覆盖这个方法吗?如果可以,我将如何/在哪里覆盖它运行HTTP服务器的C#BackgroundWorker,修改主机线程上的控件';s形,c#,backgroundworker,C#,Backgroundworker,这是一个艰难的一个 我有一个在BackgroundWorker中运行HTTP服务器的C#应用程序,它允许用户输入数据,这些数据应该实时显示在主窗体上。HTTP服务器基本上运行在do/while(true)循环中,该循环始终等待HTTP响应。因此,它必须在BackgroundWorker中运行,以便程序在等待web用户时不会停止响应。但是,当用户输入数据时,我希望后台工作人员更新主窗体上的数据 我已经尝试将主窗体的函数公开,但这会导致运行时异常,因为访问窗体控件的线程不是创建它们的线程 我曾考虑过
谢谢。继续,按原样使用ProgressChanged。作为userState参数传递的对象有多大并不重要,只要:
- 它是引用类型(即,不是结构)
- 后台进程在传递回主线程后不会修改其内容,以避免争用情况李>