- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我多年来一直在编写ASP.NET Web应用程序,但实际上并没有在大型Windows窗体项目上工作。现在,我需要进行一项工作,因此我正在寻找一些有关理想情况下如何构造大型Windows窗体项目的建议。更具体地说,我想知道如何处理多个线程。假设您有一个过程需要一些时间才能完成-您不想冻结ui窗口并且不响应。因此,该逻辑需要在单独的线程中移动。如果此线程访问UI,则将导致异常。调用似乎可以解决问题,但是编写和阅读起来非常丑陋和繁琐!
那么,实际上,最佳实践是什么?一个线程应该启动哪种类型的线程,以及如何在UI和逻辑之间拆分这些线程?有任何示例代码可以入门吗?
最佳答案
这是使用backgroundworker的一种简短方法
public Form1()
{
InitializeComponent();
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true; //set to true to fire the progress-changed event
worker.DoWork += doWork;
worker.ProgressChanged += progressChanged;
}
void progressChanged(object sender, ProgressChangedEventArgs e)
{
int progress = e.ProgressPercentage; //Progress-Value
object userState = e.UserState; //can be used to pass values to the progress-changed-event
}
void doWork(object sender, DoWorkEventArgs e)
{
object argument = e.Argument; //Parameters for the call
bool cancel = e.Cancel; //Boolean-Value for cancel work
object result = e.Result; //Object for a return-value
}
关于c# - Windows窗体中的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991868/
对于一个科学实验,我写了一个turtle.py ,它会打开一个 800x480 的窗口并绘制一个缓慢增长的黑点。 turtle.py以 C:\Users\kaza>python C:\Users\ka
我开发了一个 swing 应用程序,但每次运行应用程序时都会打开一个新窗口。我希望如果一个窗口已经打开,则其他窗口不允许打开。 最佳答案 Here是一个 Java 单一应用实例的例子: A singl
有没有办法检测主进程中 Electron 的结构? process.platform 似乎也在 x64 机器上返回 win32,我没有在文档中找到任何获取架构的选项。 最佳答案 你试过 process
public short[] HanningWindow(short[] signal_in ,int pos ,int size) { for (int i= pos; i < pos+si
我有一个具有这些属性的 Electron 窗口: mainWindow = new BrowserWindow({ width: 800, height: 600, title: "Aqu
我有一个 Ubuntu 工作站,我正在尝试引导一个 Windows 节点。 Windows 节点在端口 2222 上打开了 ssh。我一直在关注 http://docs.opscode.com/plu
我是一名优秀的程序员,十分优秀!