首页 > 解决方案 > 使用 ModuleInit.Fody 在 ModuleInitializer 中使用多线程

问题描述

我使用 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();
        }
    }

有谁知道如何创建将在第二个线程中运行的代码,或者这是不可能的?也许有人知道任何其他方式来创建可以在线程中运行的初始化代码?

问候 Szymon Szczepański

标签: c#.netfody

解决方案


推荐阅读