如何看待文本c#winforms的编写

如何看待文本c#winforms的编写,c#,winforms,C#,Winforms,我正在使用下面的代码,它应该一个字母一个字母地写我发送的字符串,但是当它开始写的时候,它确实会阻塞应用程序,然后告诉我它写了什么,我可以做什么 simulator.Keyboard.TextEntry("pruebva").Sleep(typingDelay); 应用程序崩溃,然后您会看到已经写入的文本,就像我在写入每个字符时看到的那样 谢谢,成功了 simulator.Keyboard.TextEntry(dataGridView1.Rows[0].Cells[2].V

我正在使用下面的代码,它应该一个字母一个字母地写我发送的字符串,但是当它开始写的时候,它确实会阻塞应用程序,然后告诉我它写了什么,我可以做什么

simulator.Keyboard.TextEntry("pruebva").Sleep(typingDelay);
应用程序崩溃,然后您会看到已经写入的文本,就像我在写入每个字符时看到的那样


谢谢,成功了

simulator.Keyboard.TextEntry(dataGridView1.Rows[0].Cells[2].Value.ToString());
            await Task.Delay(1000);
            simulator.Keyboard.TextEntry("pruebva").Sleep(typingDelay);
            await Task.Delay(1000);
            simulator.Keyboard.KeyPress(VirtualKeyCode.SPACE);
            await Task.Delay(1000);

我终于看到你写这篇文章的时候了,非常感谢

应用程序没有崩溃。当程序停止处理操作系统消息5秒钟时,Windows将报告程序没有响应。猜猜当你执行Thread.Sleep(5000)时会发生什么。是的,五秒钟的“什么都不做”就在那里。它阻止UI线程处理消息

请这样使用:
等待任务。延迟(5000)。是的,事件处理程序可以是异步的

另见:

  • 了解操作系统消息
  • 有关Windows如何确定应用程序未响应的说明,请参阅
  • 以及使用
    async/await
    的指南

应用程序不会崩溃。当程序停止处理操作系统消息5秒钟时,Windows将报告程序没有响应。猜猜当你执行Thread.Sleep(5000)
时会发生什么。是的,五秒钟的“什么都不做”就在那里。它阻止UI线程处理消息

请这样使用:
等待任务。延迟(5000)。是的,事件处理程序可以是异步的

另见:

  • 了解操作系统消息
  • 有关Windows如何确定应用程序未响应的说明,请参阅
  • 以及使用
    async/await
    的指南

更换
螺纹休眠(5000)wait Task.Delay(5000)
,因为您已经使处理程序
async
(您在VS中没有通知警告您有一个
async
方法不
wait
任何东西吗?)。如果您只是使用具有较大延迟的SendKeys,您的生活会更简单吗?感谢它的工作替换
线程。睡眠(5000)wait Task.Delay(5000)
,因为您已经使处理程序
async
(您在VS中没有通知警告您有一个
async
方法不
wait
任何东西吗?)。如果您只是使用具有较大延迟的SendKeys,您的生活会更简单吗?谢谢它成功了谢谢它成功了谢谢它成功了
simulator.Keyboard.TextEntry(dataGridView1.Rows[0].Cells[2].Value.ToString());
            await Task.Delay(1000);
            simulator.Keyboard.TextEntry("pruebva").Sleep(typingDelay);
            await Task.Delay(1000);
            simulator.Keyboard.KeyPress(VirtualKeyCode.SPACE);
            await Task.Delay(1000);