我尝试了FileIO.WriteTextAsync();
和包括Grid在内的许多事件。Loaded和RichEditBox。TextChanged,但该方法是异步的,并且与称为上一个循环的进程冲突。因此,System.IO.FileLoadException
具有以下描述:
进程无法访问该文件,因为另一个进程正在使用该文件。
那么在这种情况下我该怎么办?
TextChanged
事件触发频率太高-您可以在一秒钟内键入几个字符-处理TextChanged
事件对UI线程来说太重。
您可以在Timer Tick事件处理程序中执行此保存操作,设置足够长的间隔以确保在下一次Tick发生之前完成操作。
DispatcherTimer timer;
public MainPage()
{
this.InitializeComponent();
timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(10) };
timer.Tick += Timer_Tick;
timer.Start();
}
private async void Timer_Tick(object sender, object e)
{
await FileIO.WriteTextAsync(file, tbInput.Text);
}