gpt4 book ai didi

c# - 如何使 DragDrop.DoDragDrop 异步?

转载 作者:太空宇宙 更新时间:2023-11-03 17:05:04 24 4
gpt4 key购买 nike

我使用 DragDrop.DoDragDrop 将文件从我的 C# WPF 应用程序复制到 Windows 资源管理器。但是,文件的实际复制导致我的 WPF 应用程序卡住,直到复制完成。此复制操作可能会持续几秒到几分钟。

DataObject dragdata = new DataObject(DataFormats.FileDrop);
System.Collections.Specialized.StringCollection sc = new System.Collections.Specialized.StringCollection();

//fill the StringCollection with filenames

dragdata.SetFileDropList(sc);
DragDrop.DoDragDrop(listviewitem, dragdata, DragDropEffects.Copy);

如何在不卡住/锁定我的应用程序的情况下调用 DoDragDrop 方法?我无法理解所报告的 DataObject 的“异步”实现。

最佳答案

与其尝试使“DoDragDrop”方法异步执行,不如在不同的线程上执行文件复制,因为这将允许运行 WPF 应用程序 UI 的主线程继续在另一个线程执行复制文件的繁重 I/O 操作时运行(不卡住)。一旦另一个线程完成,您可以通知您的主线程它已完成,以显示一条状态消息,表明文件复制已完成。

关于c# - 如何使 DragDrop.DoDragDrop 异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com