¿Hay alguna manera de hacer que un delegado se ejecute en un hilo específico?Invocar un delegado en un hilo específico C#
Decir que tengo:
CustomDelegate del = someObject.someFunction;
Thread dedicatedThread = ThreadList[x];
¿Puedo tener un fondo consistente hilo de larga data e invocar mis propios delegados en él cuando lo necesito. Tiene que ser el mismo hilo cada vez.
[Editar]
La razón por la que quiero que sea en un hilo dedicado es tiempo es que me InTen para ejecutar el delegado en ella y suspender el hilo después de y
milisegundos, y reanudar el hilo cuando corro otro delegado en él. Veo que esto no es posible. Tendré una cola delegada y dejaré que la función principal del hilo se lea y ejecute desde allí.
Para aclarar con un ejemplo concreto, tengo un sistema de juego con un montón de hilos de jugador. Me gustaría que cada playerthread ejecute controladores de eventos para eventos de juegos en él. Si los controladores de eventos toman demasiado tiempo, me gustaría poder poner en pausa a ese jugador en particular hasta el próximo evento suspendiendo su hilo.
Al tener un hilo dedicado en el que puedo ejecutar varios controladores de eventos, puedo detener la IA de un jugador en particular en caso de que se interrumpa o demore demasiado.
Gracias por señalar el ActionThread, que parece muy útil. Necesitaba encapsular código externo sobre el cual tengo poco control en un hilo. Todo lo que tengo es delegados al código externo. Si puedo asegurarme de que el objeto está en un hilo en particular, puedo "pausar" ese objeto simplemente suspendiendo el hilo. No creo que el threadpool me permita "pausar" el objeto muy bien. – Raynos
Una palabra de advertencia: es posible (incluso probable) provocar bloqueos accidentales accidentalmente suspendiendo/reanudando subprocesos. Si es posible, cambie el código externo. Si eso no es posible, considere usar prioridades de subprocesos en lugar de suspender/reanudar. –