Использование многопоточности в ModuleInitializer с использованием ModuleInit.Fody - PullRequest
0 голосов
/ 07 ноября 2019

Я использовал ModuleInit.Fody для создания кода, который должен вызываться при загрузке сборки. В этом коде мне нужно сделать некоторую операцию в задаче. К сожалению, есть проблема с этим кодом ... код внутри задачи не запускается. когда я использовал этот же код после инициализации модуля, работал как шарм.

Некоторый тестируемый код

public static class ModuleInitializer
    {
        public static AsyncCallback callback;

        public static void Initialize()
        {
            callback = ar => Console.WriteLine("Result");
            ConsoleThread(() => ModuleInitializer.RunThread(1));
            Console.WriteLine("Compleate");
            Console.ReadKey();
        }

        public static void ConsoleThread(Action inputFunct)
        {
            IAsyncResult result = inputFunct.BeginInvoke(callback, null);
        }

        public static void RunThread(int i)
        {
            Console.WriteLine($"Thread {i}");
        }

        public static void Test()
        {

        }
    }

и program.cs

    class Program
    {

        static void Main(string[] args)
        {
            ModuleInitializer.Test();
        }
    }

Кто-нибудь знает, каксоздать код, который будет запущен во втором потоке или это невозможно? Может быть, кто-то знает какой-либо другой способ создания кода инициализации, который можно запустить в потоке?

С уважением, Шимон Щепаньски

...