螺纹铸造结构 [英] cast structure in thread
本文介绍了螺纹铸造结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个尝试在后台工作人员案例中使用的结构,但是我没有成功
private Jobs as list(of jobitems) Structure JobItem Dim Index As Integer Dim Url As String Dim Status As String End Structure
我收到此错误
TryCast'' operand must be reference type, but is a value type
在后台工作人员
Private Sub DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Dim worker As BackgroundWorker = TryCast(sender, BackgroundWorker) Dim workItem As String = TryCast(e.Argument, String) If worker IsNot Nothing AndAlso workItem IsNot Nothing Then ''Process the work item here. Dim jb As New JobItem jb.Status = "Starting" & Jobs(CInt(workItem)).Url worker.ReportProgress(CInt((Jobs.Count / 100) * urlIndex), jb) End If End Sub Private Sub ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Dim jb As JobItem = TryCast(e.UserState, JobItem) End Sub
我该如何解决,
谢谢,您必须使用CType
而不是TryCast
. TryCast
期望您传递给引用类型的参数,但是JobItem是一个结构,这是一个值类型,因此会出现错误. CType
不是这种情况.
现在应该可以使用了:
私有 Sub ProgressChanged( ByVal 发件人 As 对象, ByVal e As System.ComponentModel.ProgressChangedEventArgs)
Dim jb As JobItem = CType (e .UserState,JobItem)
结束 子
:)
i have a structure that i try to case in background worker, but no success i get
private Jobs as list(of jobitems) Structure JobItem Dim Index As Integer Dim Url As String Dim Status As String End Structure
i get this error
TryCast'' operand must be reference type, but is a value type
in background worker
Private Sub DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Dim worker As BackgroundWorker = TryCast(sender, BackgroundWorker) Dim workItem As String = TryCast(e.Argument, String) If worker IsNot Nothing AndAlso workItem IsNot Nothing Then ''Process the work item here. Dim jb As New JobItem jb.Status = "Starting" & Jobs(CInt(workItem)).Url worker.ReportProgress(CInt((Jobs.Count / 100) * urlIndex), jb) End If End Sub Private Sub ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Dim jb As JobItem = TryCast(e.UserState, JobItem) End Sub
how do i fix this,
thanks
解决方案
Hi, you have to useCType
instead ofTryCast
.TryCast
expects the parameters that you have passed to of Reference Type but JobItem is a Structure which is a Value type and hence the error. Which is not the case withCType
.
This should work now:
Private Sub ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Dim jb As JobItem = CType(e.UserState, JobItem) End Sub
:)
这篇关于螺纹铸造结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文