我试图弄清楚如何多线程应用程序.我很难找到启动线程的入口点.
我尝试启动的主题是:plugin.FireOnCommand(this,newArgs);
...
PluginBase plugin = Plugins.GetPlugin(Commands.GetInternalName(command));
plugin.FireOnCommand(this, newArgs);
...
Run Code Online (Sandbox Code Playgroud)
FireOnCommand方法是:
public void FireOnCommand(BotShell bot, CommandArgs args)
Run Code Online (Sandbox Code Playgroud)
我没有运气使用ParameterizedThreadStart或ThreadStart,我似乎无法使语法正确.
编辑:试过两个
Thread newThread =
new Thread(new ParameterizedThreadStart(plugin.FireOnCommand(this, newArgs)));
Run Code Online (Sandbox Code Playgroud)
和
Thread newThread =
new Thread(new ThreadStart(plugin.FireOnCommand(this, newArgs)));
Run Code Online (Sandbox Code Playgroud)
在.NET 2中,您需要使用自定义类型为此创建方法.例如,您可以这样做:
internal class StartPlugin
{
private BotShell bot;
private CommandArgs args;
private PluginBase plugin;
public StartPlugin(PluginBase plugin, BotShell bot, CommandArgs args)
{
this.plugin = plugin;
this.bot = bot;
this.args = args;
}
public void Start()
{
plugin.FireOnCommand(bot, args);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
StartPlugin starter = new StartPlugin(plugin, this, newArgs);
Thread thread = new Thread(new ThreadStart(starter.Start));
thread.Start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |