问题  在新线程中运行DLL文件?

那里

新成员
加入
2014年9月23日
消息
4
编程经验
5-10
大家好!

我创建了一个将睡眠5秒的简单DLL文件,然后显示一条消息并重复。

我想在我的.exe中调用我的dll在一个新的线程中,并不断运行它。
所以某事:

线程t =新线程();
T.Run("Test.dll");

还是那里的东西?
请帮助我,谢谢 :)
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
你不打电话给DLL。你打电话给一种方法。您需要在应用程序项目中引用库,创建包含要执行的方法的类型的实例并将该方法传递给线程对象,然后启动线程。您的代码将最终查找这样的内容:
using MyLibraryNamespace;

// ...

            var source = new SomeTypeFromLibrary();
            var t = new Thread(source.SomeMethod);

            t.Start();
 

那里

新成员
加入
2014年9月23日
消息
4
编程经验
5-10
你不打电话给DLL。你打电话给一种方法。您需要在应用程序项目中引用库,创建包含要执行的方法的类型的实例并将该方法传递给线程对象,然后启动线程。您的代码将最终查找这样的内容:
using MyLibraryNamespace;

// ...

            var source = new SomeTypeFromLibrary();
            var t = new Thread(source.SomeMethod);

            t.Start();

我不应该不使用"var"作为我的变量类型和实际变量类型?
有时的人力学 source = new SomeTypeFromLibrary();
Thread t = new Thread(source.SomeMethod);


或没有?
 

那里

新成员
加入
2014年9月23日
消息
4
编程经验
5-10
更新:此外,我这样做:
private void button1_Click(object sender, EventArgs e)
        {
            var source = new PHAC();
            Thread t = new Thread(source.SomeMethod);
        }


在PHAC上,我收到了一个错误说:
'PHAC'是一个“命名空间”,但与“类型”一起使用

我的DLL库文件称为PHAC.dll,在我的项目下,我添加了DLL文件。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
Shouldn't I not use "var"作为我的变量类型和实际变量类型?
有时的人力学 source = new SomeTypeFromLibrary();
Thread t = new Thread(source.SomeMethod);


或没有?

只要可以从初始化表达式推断出类型,您可以使用`var`。有些人一直在使用它,有些人从不使用它,有些人只在初始化表达式中明确时使用它。在这种情况下,如果您要使用`var`,则在这两种情况下都是明确的,这将是时间。否则,您在左侧和右侧有明确指定的对象类型。当然不会受伤,但在我看来,使代码看起来比必要的更杂乱。这是个人味道的情况。无论你选择做什么,都是一致的。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,715
地点
悉尼,澳大利亚
编程经验
10+
更新:此外,我这样做:
private void button1_Click(object sender, EventArgs e)
        {
            var source = new PHAC();
            Thread t = new Thread(source.SomeMethod);
        }


在PHAC上,我收到了一个错误说:


我的DLL库文件称为PHAC.dll,在我的项目下,我添加了DLL文件。

我在我的例子里拼了它。我用了"SomeTypeFromLibrary"在我的示例中,因为您需要从库中创建某些类型的实例。您无法创建名称空间的实例。您想要执行哪种方法以及哪种类型的方法是成员?这是您实例化的类型,这是您运行的方法。
 
最佳 底部