在没有调试模式下运行时,Task.Factory.StartNew不起作用

时间:2019-02-14 06:42:10

标签: asp.net vb.net multithreading

这是我第一次实现Task.Factory.StartNew,所以我对此并不了解。我有一个返回布尔值并带有参数的函数。现在,我已经使用Task.Factory.StartNew调用了我的函数。

Task.Factory.StartNew(Function() Myfunction(stringvalue))

当我处于调试模式时,它可以工作并执行所有操作。但是当我在没有调试的情况下运行它时,它将无法正常工作。我已经在该函数中放置了一个Response.Write,它没有执行,所以它只是没有进入该函数。

下面是显示我要做什么的函数

我的按钮点击事件

Private Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
 Tasks.Task.Factory.StartNew(Function() Myfunction("Somevalue"))
End Sub

我的功能

Private Function Myfunction(ByVal str as String) as Boolean
Dim isSuccess as Boolean = False
Dim Id as Integer = SomeOtherFunction(str)
If Id > 0 Then
isSuccess =  AnotherFunction(Id)

End If
Return isSuccess
End Function

如果我使用Tasks.Task.Factory.StartNew(Function()Myfunction(“ Somevalue”))。Start(),它可以正常工作并且可以完成该功能,但是我却收到异常提示-“开始可能不会在已经开始的任务上被调用”

我在做什么错了?

0 个答案:

没有答案