【问题标题】:Reference to a non-shared member threading引用非共享成员线程
【发布时间】:2018-12-30 17:57:05
【问题描述】:

我在VS2017中打开了一个用VS2010构建的项目。

代码没有改变,2010 版本构建完美,但使用 2017 构建时,我收到“对非共享成员的引用需要对象引用”错误,代码如下。

Dim doCheck As New System.Threading.Thread(AddressOf Check_Form.checkList)
doCheck.SetApartmentState(ApartmentState.STA)
doCheck.Start(thisname & "~" & thisnum)

'AddressOf' 部分抛出错误。

VS2017 有什么变化还是我忘了修改什么?我已经有一段时间没有看到这个了,但我有一个新的签名证书,并且 System.Threading 像往常一样被导入。

Check_Form.checkList 子是公开的,但不共享,但过去从未如此,并且始终运行良好。

谢谢。

【问题讨论】:

  • Check_Form 是变量/属性还是类型?您是否尝试在那里引用默认实例的方法?
  • sry - 离线几天了。 Check_Form 是另一个窗体

标签: vb.net multithreading visual-studio addressof


【解决方案1】:

似乎 Check_Form 是该所有者表单的类型。因此My.Forms.Check_Form.checkListCheck_Form.checkList 的隐式调用一起使用

我不确定 2017 版是否对参考优先级进行了一些更改,但请尝试将您的代码更改为

Dim doCheck As New System.Threading.Thread(AddressOf My.Forms.Check_Form.checkList)

获取相同代码的显式版本。当前版本可能在 My.Forms 属性之前更喜欢 type。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-06
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    相关资源
    最近更新 更多