我有这段代码:
private void button2_Click(object sender, EventArgs e)
{
Cursor = Cursors.WaitCursor;
logBox.Text += "My text";
try
{
ping thing;
}
catch
{
}
}
如何在尝试之前显示logBox.Text + =?实际上,需要等待线程结束才能在我的日志框中显示文本...
我不想等待应用程序进行尝试,并在单击按钮时直接显示logBox.Text。
感谢您的帮助。
答案 0 :(得分:0)
您可以使用Task.Factory来实现这一目标。 docs的示例:
using System;
using System.IO;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
Task[] tasks = new Task[2];
String[] files = null;
String[] dirs = null;
String docsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
tasks[0] = Task.Factory.StartNew( () => files = Directory.GetFiles(docsDirectory));
tasks[1] = Task.Factory.StartNew( () => dirs = Directory.GetDirectories(docsDirectory));
Task.Factory.ContinueWhenAll(tasks, completedTasks => {
Console.WriteLine("{0} contains: ", docsDirectory);
Console.WriteLine(" {0} subdirectories", dirs.Length);
Console.WriteLine(" {0} files", files.Length);
} );
}
}
// The example displays output like the following:
// C:\Users\<username>\Documents contains:
// 24 subdirectories
// 16 files
只需将您的任务创建放入您正在使用的事件处理程序中。
答案 1 :(得分:-2)
将您的代码修改为以下内容:
async