我有一个程序,我使用openfile对话框选择一个文件并将该路径添加到文本框中。 然后我进一步处理该文件。
我遇到的问题是当我选择Windows媒体设备上的文件时,例如iPAD。由于它不使用标准窗口路径,因此必须先将文件复制到临时文件夹。 我什至不必对其进行编码,它会自动将其复制到我的 windows temp 文件夹中,然后将其作为文件的路径。
我遇到的问题是它会冻结 UI,直到文件完成复制。
是否有一种更优雅的方法,以便如果我从Windows媒体设备中选择文件,我可以得到一个弹出框或说它正在复制文件而不是冻结UI的内容?
你需要做一个线程。创建线程后,您应该显示打开对话框或者使用操作。因为如果您在主线程中显示对话框,它将保留主线程。
//1. Thread
Thread openDialogthread = new Thread(Showdialog);
openDialogthread.Start();
void Showdialog()
{ // do popup dialog here }
//2. Action
if(this.invokeRequired)
{
this.BeginInvoke(new Action(() => fileOpendialog.ShowDialog();));
}