【问题标题】:C# - openfiledialog box freezes while selecting file from Windows Media DeviceC# - 从 Windows Media 设备中选择文件时,openfile 对话框冻结
【发布时间】:2018-09-18 03:33:30
【问题描述】:
我有一个程序,我使用 openfile 对话框来选择文件并将该路径添加到文本框。然后我进一步处理该文件。
我遇到的问题是当我选择 Windows 媒体设备(例如 iPAD)上的文件时。因为它不使用标准的 windows 路径,所以它必须先将文件复制到临时文件夹。我什至不必编写代码,它只会自动将其复制到我的 Windows 临时文件夹,然后将其作为文件的路径。
我遇到的问题是它会冻结 UI,直到文件完成复制。
有没有更优雅的方法可以使用,如果我从 Windows 媒体设备中选择一个文件,我可以得到一个弹出框或者说它正在复制文件而不是冻结 UI?
【问题讨论】:
标签:
c#
windows
ipad
openfiledialog
【解决方案1】:
你需要做一个线程。建立一个线程后,您应该显示 opendialog
或者使用一个动作。
因为如果你在主线程中显示对话框,它将保持主线程。
//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();));
}