ckteacher
ckteacher
采纳率0%
2016-05-31 07:07 阅读 2.1k

C# 反射调用 dll, 调用完毕后,dll文件还显示有进程占用

我用C# 做的windows 服务,
创建线程通过反射的方式调用DLL,
当线程的方法执行完,被反射调用的DLL,无法移动或被替换,显示当前有进程占用。

我的预期,windows服务一直在机器上运行,当我想更新对应dll的方法时,只需要在windows服务没调用这个dll的时候,把文件替换。

部分代码:
foreach (DataRow dr in ds.Tables[0].Rows) 根据条件在数据库中查的结果集
{
Task task = new Task();
Thread t = new Thread(new ThreadStart(task.Start));
t.Start();
}

public class Task
{
public void Start()
{
_ass = Assembly.LoadFrom("DLL 的路径");
}
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • changjlbb 长颈鹿贝贝 2016-10-07 16:40

    的方式调用DLL,
    当线程的方法执行完,被反射调用的DLL,无法移动或被替换,显示当前有进程占用。
    我的预期,windows服务一直在机器上运行,当我想更新对应dll的方法时,只需要在windows服务没调用这个dll的时候,把文件替换。
    部分代码:
    foreach (DataRow dr in ds.Tables[0].Rows) 根据条件在数据库中查的结果集
    {
    Task task = new Task();
    Thread t = new Thread(new ThreadStart(task.Start));
    t.Start();
    }
    public class Task
    {

    点赞 评论 复制链接分享

相关推荐