В академических целях я реализовал библиотеку C #, которая реализует «вычисления с агентами», например, думая о том, что делает JADE.С помощью этой библиотеки я могу легко реализовать алгоритм распределенных вычислений.Каждый агент - это объект, имеющий отдельный поток, реализующий часть вычислений, а сам объект остается свободным для получения и отправки сообщений.Эти алгоритмы могут запускать тысячи агентов (то есть потоков), контролируемых супер-агентом, который изменяет их состояние и синхронизирует их: я не могу создать 10.000 потоков и позволить им работать всем вместе, потому что ПК может умереть ...Таким образом, каждый агент имеет изменяющийся статус, который я должен нарисовать в графическом интерфейсе, чтобы позволить пользователю понять, что происходит во время вычислений.И мои агенты могут быть созданы и убиты во время вычислений, что усложняет процесс ...Я думал использовать сетку, в которой каждая ячейка является агентом, меняя цвет фона каждой ячейки в соответствии со статусом агента, но я не уверен, как «присоединить» один агент к ячейке (помните, что я не могу использовать индекс, потому чточисло агентов может меняться, и некоторые агенты могут быть уничтожены, я думал создать элемент управления для каждого нового агента и поместить этот элемент управления в графический интерфейс, чтобы я мог быстро создавать, размещать и уничтожать его при необходимости.Большое дело в огромном количестве потоков и необходимости как можно быстрее обновлять графический интерфейс, потому что состояние потоков меняется непрерывно и очень быстро.Что ты можешь предложить?Как лучше всего выполнить мою задачу?
ОБНОВЛЕНИЕ: Я занимаюсь разработкой этой библиотеки с использованием Framework 2.0, поскольку она ДОЛЖНА работать и под Linux, используя Mono.