KDJ*_*KDJ 4 c# worker-thread winforms
使用线程时,'invoke'用于避免'交叉线程'(1)
但是,有时'计时器对象'被用来避免'CrossThread'(2)
像这样(例如)
public partial class Form1 : Form
{
private bool bCheckState = false;
public Form1()
{
InitializeComponent();
}
//Button Click
private void btnWork_Click(object sender, EventArgs e)
{
Thread m_Thread = new Thread(new ThreadStart(Work));
m_Thread.Start();
}
private void Work()
{
bCheckState = true;
// not use invoke
}
private void timer_Tick(object sender, EventArgs e)
{
if (bCheckState)
{
//tbxDisplay is winform's textBox control - printing data
tbxDisplay.Text = bCheckState.ToString();
bCheckState = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
哪一个更有效?'(1)和(2)之间'
如果我们在"计时器事件"中检查后在"线程"中分散处理的数据,而不使用"调用"或其他方法,是否会出现问题?(我们听说在打印'thread'中处理的数据时要避免'Cross-Thread',在'timer event'中散布带有附加'timer object'的数据经常被使用,因为它既不有益也无害.
归档时间: |
|
查看次数: |
238 次 |
最近记录: |