Я делаю Drag & Drop для внешнего приложения, как это:DoDragDrop замерзает WinForms приложения иногда
string[] files = new string[/* */];
// get files
DataObject o = new DataObject(DataFormats.FileDrop, files);
DoDragDrop(o, DragDropEffects.Copy | DragDropEffects.Move);
и некоторые приложения будут принимать файлы и двигаться на них и мое приложение обрабатывать вольно делать это мелочь , но некоторые приложения сделают мое приложение замороженным, пока оно не обработает все файлы ... есть ли способ, которым я могу обойти это? Я попытался сделать это в Thread, но это не сработало так хорошо, что это не сработало ... так что любые предложения о том, как сделать этот код, не повесить мое приложение?
Хм, это интересно, и я уверен, что вы правы, но это не решает проблему;) Я имею в виду ... Мне не нужно запускать DoDragDrop async ... все, что мне нужно сделать, это иметь часть обмена данными для async ... Я где-то читал, что DataObject должен будет реализовать некоторый асинхронный интерфейс, но я не могу его найти сейчас ... Возможно, вы знаете, где я могу найти «место», где мои приложение обменивается данными с другим приложением? (с использованием DoDragDrop ofc) – argh
Часть обмена данными находится внутри DoDragDrop, поэтому, если вы хотите, чтобы exachange данных был асинхронным, тогда вы должны поместить DoDragDrop в другой поток. и он должен быть потоком STA. Вы знаете, как заставить поток быть STA в .NET? –
Ну ... поправьте меня, если я ошибаюсь, но если у меня есть: [STAThread] статической силы основных (String []) параметры то это время работают в ГНА тему, не так ли? – argh