我在C#中编写了一个应用程序,我将连接到Teradata DB并运行用户输入的查询。很多时候,这个查询很大,需要时间来执行。 我想在主UI上实现取消按钮。如果用户认为一个查询运行时间太长,他应该能够中止该查询。查询将仅是选择查询。现在,当提交查询时,UI冻结,用户必须中止该进程才能终止查询。 谢谢 ! 萨米尔辛格
答案 0 :(得分:2)
您需要在不同的线程上执行查询,而不是UI威胁。一旦查询结果可用,然后在UI中显示结果,这将不会冻结UI。
在这种情况下,Async-await是你的朋友。关于sql中的取消我知道你可以做sqlcommand.cancel,检查teradata提供者提供的内容并调用它。
答案 1 :(得分:1)
要么在Application.ProcessMessage()上进行重绘,要么对你的应用程序进行线程处理,这样你的数据库调用就可以出去执行,同时指示用户界面做一些不错的事情。