如何自动保存RichEditBox文本



我尝试了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);
}

相关内容

  • 没有找到相关文章

最新更新