简单的使用
class Program
{
static void Main(string[] args)
{
Console.WriteLine("主线程测试开始..");
AsyncMethod();
Thread.Sleep(1000);
Console.WriteLine("主线程测试结束..");
Console.ReadLine();
}
static async void AsyncMethod()
{
Console.WriteLine("开始异步代码");
var result = await MyMethod();
Console.WriteLine("异步代码执行完毕");
}
static async Task<int> MyMethod()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("异步执行" + i.ToString() + "..");
await Task.Delay(1000); //模拟耗时操作
}
return 0;
}
}
等待一个结果
public bool test = false;
void OnGUI()
{
if(GUI.Button(new Rect(0, 450, 300, 150), "Test"))
{
test = true;
}
}
async void AsyncMethod()
{
Debug.Log("开始异步代码");
await MyMethod();
Debug.Log("异步代码执行完毕");
}
async Task MyMethod()
{
for (int i = 0; i < int.MaxValue; i++)
{
await Task.Delay(100);
Debug.Log("等待...");
if (test == true)
break;
}
/*await Task.Run(() =>
{
while (true)
{
if (test == true)
break;
}
});
}