private void butt_Click(object sender, EventArgs e)
{
try
{
richTextBox1.Text = RunPreUp("script");
}
catch(exception p) { }
}
我的问题是RunPreUP(“脚本”)需要超过3分钟,所以我想从RunPreUp(“script”)同步richTextBox1的写入和读取; 有async / await,但它是farmework4.5,我在VS2010 framework.3.5上工作。 野兽问候
答案 0 :(得分:1)
查看BackgroundWorker
班级或ThreadPool
班级。任何一个都可以让你运行冗长的操作,完成后你可以用结果更新.Text
属性。请记住,您需要richTextBox1.Invoke
来设置属性。
答案 1 :(得分:0)
使用单独的线程?
我测试了这个并且它有效。
public partial class Form1 : Form
{
private Thread _thread = null;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ParameterizedThreadStart pts = new ParameterizedThreadStart(RunPreUp);
_thread = new Thread(pts);
_thread.Start("script");
}
private void RunPreUp(object param)
{
string parameter = param as string;
// do work.
string result = "here is a result";
richTextBox1.Invoke((MethodInvoker)delegate
{
richTextBox1.Text = result;
});
Thread.CurrentThread.Abort();
}
}