什么是同步方法,什么是异步方法?同步方法和异步方法有什么区别?什么时候必须使用同步或异步方法?
我问这些问题是因为我不明白:
public async void ReadData(filepath)
{
CreateDoc("hello"); //<------ Why I can't do that ?
}
public void CreateDoc(string astring)
{
Debug.WriteLine(astring);
}
为什么我不能这样做? :
public async void ReadData(filepath)
{
var BarreDroite = new string[] { "|" };
foreach (string tableArret in items.Split(BarreDroite, StringSplitOptions.RemoveEmptyEntries))
{
listeArret.Add(tableArret); //<---- Here appear the problem.
}
{
我问这个问题是因为我在网上找不到明确的解释。
函数和其他操作在“线程”上运行。线程只是一串操作,但一次可以有多个线程。在某些方面,最重要的线程是主线程,通常称为 UI 线程,因为这是控制用户界面的地方。
当执行冗长的操作(例如从互联网获取数据)时,您不希望在主线程上等待该数据,因为您将“阻止”该线程响应用户输入(例如,单击取消按钮)
为了解决这个问题,您可以将长时间运行的任务放在它自己的线程上。 C# 使这变得简单,您只需使用await 关键字,该函数将等待工作完成,而不会阻塞主线程。
单词await 是一个“关键字”——它的使用是为此目的而保留的。要表明函数中有await,您必须使用async 标记该函数。如果您确实将其标记为异步,则编译器将期望至少有一个等待。
你的例子:
public async void ReadData(filepath)
{
CreateDoc("hello"); //<------ Why I can't do that ?
}
您已将此方法标记为异步,但没有任何等待
希望这可以帮助
jesse
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)