如下代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} public string Message = "";
private void button1_Click(object sender, EventArgs e)
{
Task.Run(
new Action(
() => {
this.Message = "hello kun";
}
)
);
Thread.Sleep();
MessageBox.Show(this.Message);
}
}
在异步线程中操作Message变量,实测可行;
注意:(1)如果主线程不加延时的话Message变量还是空的,说明此时异步线程并未执行到赋值变量。
(2)这种做法不是线程安全的,如果有多个线程同时修改Message的话会造成数据混乱,非要这么使用的话最好在Message上加Look