我有一个C++的程序,其中弹出某个c#的对话框,用户进行某些输入之后,点击ok按钮,结束对话框。从对话框得到的输入,会发送给C++进行某些处理。
如果处理的时间很短,很快,程序没有什么问题。如果处理的时间很长,会发现c#的对话框不立即消失,一直到c++处理完毕,对话框才消失。请教,如何才能点击对话框上的ok按钮之后,让对话框迅速消失呢。因为此后对话框没什么用了。我需要显示c++实现的主程序。同时把鼠标改成沙漏即可。鼠标改成沙漏没什么问题。现在就是不知道如何让对话框迅速关闭。得到用户输入倒是很快。c#调用c++的函数,把对话框里得到的用户输入作为参数传给c++。尝试过用delegate的begininvoke,似乎没用。给位高手有何建议?
如果处理的时间很短,很快,程序没有什么问题。如果处理的时间很长,会发现c#的对话框不立即消失,一直到c++处理完毕,对话框才消失。请教,如何才能点击对话框上的ok按钮之后,让对话框迅速消失呢。因为此后对话框没什么用了。我需要显示c++实现的主程序。同时把鼠标改成沙漏即可。鼠标改成沙漏没什么问题。现在就是不知道如何让对话框迅速关闭。得到用户输入倒是很快。c#调用c++的函数,把对话框里得到的用户输入作为参数传给c++。尝试过用delegate的begininvoke,似乎没用。给位高手有何建议?
if (frm.ShowDialog() == DialogResult.OK)
{
//调用得到值后的处理
}
没问题,M$想的周到,使用BackgroundWorker类,自己看看MSDN吧。
FrmInput frm=new FrmInput();
if (frm.ShowDialog() == DialogResult.OK)
{
//在这里加上Thread.Sleep(100);试试
//调用得到值后的处理
}