que estoy haciendo una gota Arrastre para aplicación externa de esta manera:DoDragDrop congela aplicación WinForms veces
string[] files = new string[/* */];
// get files
DataObject o = new DataObject(DataFormats.FileDrop, files);
DoDragDrop(o, DragDropEffects.Copy | DragDropEffects.Move);
y algunas aplicaciones tendrán los archivos y pasar a procesarlos y mi aplicación es libre de hacer son cosas , pero algunas aplicaciones harán que MI aplicación se congele hasta que procesen todos los archivos ... ¿hay alguna forma de evitarlo? Intenté hacerlo en un subproceso pero eso no funcionó tan bien; no funcionó en absoluto ... ¿así que, cualquier sugerencia de cómo hacer este código no cuelga mi aplicación?
Hmm, eso es interesante y apuesto a que tienes razón, pero eso no resuelve el problema;) Quiero decir ... No necesito ejecutar DoDragDrop asincrónico ... todo lo que tengo que hacer es tener la parte de intercambiar los datos para ser asíncrono ... Leí en alguna parte que el DataObject tendría que implementar alguna interfaz asíncrona pero no puedo encontrarla ahora ... ¿Sabes dónde podría encontrar el "lugar" donde mi la aplicación intercambia los datos con la otra aplicación? (usando DoDragDrop ofc) – argh
La parte de intercambio de datos está dentro de DoDragDrop, por lo que si desea que el análisis de datos sea asíncrono, entonces debe colocar DoDragDrop en otro hilo. y debe ser un hilo STA. ¿Sabes cómo forzar un hilo para que sea STA en .NET? –
Bueno ... me corrija si estoy equivocado, pero si lo he entendido: [STAThread] void Main (string [] parámetros estáticos) entonces está siendo ejecutado en STA hilo, ¿verdad? – argh