首页 > 其他分享 >转发 vb.net 使用 lamdar表达式 IProgress 不报告,注意 function 与 sub 的语法

转发 vb.net 使用 lamdar表达式 IProgress 不报告,注意 function 与 sub 的语法

时间:2024-01-15 23:55:40浏览次数:29  
标签:function lamdar vb Function Dim Value Progress prog Integer

转发 网址:https://qa.1r1g.com/sf/ask/3476729581/

IProgress 不报告  vb.net async-await progress-bar 

我有以下代码来报告进度。该函数CalculateMandelbrot()似乎是异步工作的,但我的进度条什么也没显示。

Public Class Form1
    Private Async Function Button1_Click(sender As Object, e As EventArgs) As Task Handles Button1.Click
        Dim prog As Progress(Of Integer) = New Progress(Of Integer)(Function(x) ProgressBar1.Value = x)
        Await Task.Run(Function() CalculateMandelbrot(prog))
        Dim ende As Boolean = True
    End Function

    Private Function CalculateMandelbrot(ByVal progress As IProgress(Of Integer))
        For xi = 0 To 100
            Threading.Thread.Sleep(40):   progress.Report(xi)
        Next
        Return 42
    End Function
End Class
 --------------------------------------------------------------------------------------------
Han*_*ant  6 
   Dim prog = New Progress(Of Integer)(Function(x) ProgressBar1.Value = x)

编译器很难理解这段代码。请注意,lambda 表达式是一个函数,函数需要有返回值。它从何而来?lambda 表达式的返回值类型是什么?

希望你能看到陷阱。它唯一能做的就是假设您打算返回一个布尔值。因此,您可以比较 Value 和 x 的值。换句话说,它被编译为Return (ProgressBar1.Value = x). 一个布尔值,返回值实际上并没有被使用。

不是作业,因此没有进度条更新。正确编写以修复错误:

   Dim prog = New Progress(Of Integer)(Sub(x) ProgressBar1.Value = x) 
 

标签:function,lamdar,vb,Function,Dim,Value,Progress,prog,Integer
From: https://www.cnblogs.com/MadeInChinese/p/17966667

相关文章

  • 转载一篇 vb.net await 工作顺序
    VB.net-异步编程之asyncawait结构的学习芯艺在.net中有一种非常先进的异步编程机制,那就是async和await组成的异步方法调用,用好这两个关键字可使异步程序就象同步代码一样简洁易懂。async用于指定一个方法为异步方法,实际上就是告诉编译器该方法内有await等待,需要将此方法中......
  • 创建DOM节点时出现错误信息:box.appendChild is not a function
    1、代码正常书写如下<divclass="box"></div><!--JavaScript代码--><script>//创建节点letbox=document.getElementsByClassName("box");letwords=document.createElement("span");......
  • Excel中使用VBA写个函数,包含什么文字就显示什么文字。
    需求如下:Excel的D列是包含文字,E列是显示文字,也即是对应表。B列是数据,C列写公式呈现结果。若B列的文字包含了D列其中某个单元格的文字,同时若E列对应行有文字,就显示E列的对应文字,否则显示D列的对应文字。   由于Excel的VBA年代久远,很少使用,因此决定使用AI来生成。一开......
  • node-red__function_2
              ......
  • 矩阵乘法 - CF678D Iterated Linear Function
    CF678DIteratedLinearFunction题意\(f_{i,x}=A\timesf_{i-1,x}+B\)且\(f_{0,x}=x\)求\(f_{n,x}\)。思路这道题的递推关系十分清晰。但由于数据范围大(\(1\leA,B,x\le10^9,1\len\le10^{18}\)),所以这道题只能使用矩阵乘法加速递推。矩阵的构造我们需要构造一个......
  • VB6的OfficeMenu控件 - 开源研究系列文章
          这次将原来VB6中喜欢和使用到的OfficeMenu的控件做一个使用介绍。      上次介绍了VB6中的控件引擎,但是那个只针对基本的控件,这个OfficeMenu控件在当时是收费的,笔者找度娘好不容易才下载到一个免费版本,而且使用起来也非常的方便,在当时那个年代是笔者对于VB6......
  • vba抓取网页数据
    哈喽,哈喽,大家好!大家2024发大财啦!不知道,平时大家爱不爱看电影呢?从今年的贺岁档的拍片来看,今年的电影还挺多,而且国产优秀电影居多,元旦假期期间我也去看了部喜剧片,应该说在2023的年度还能看到一部优秀的国产喜剧片,还是挺开心的。大家看到这里是不是觉得走错频道了?难道我要来讲电影了?不......
  • SQL Server报错The datediff function resulted in an overflow
    建模提醒功能异常,获取查询语句到数据库执行报错:Msg535,Level16,State0,Line62Thedatedifffunctionresultedinanoverflow.Thenumberofdatepartsseparatingtwodate/timeinstancesistoolarge.Trytousedatediffwithalessprecisedatepart.消息535,级......
  • 关于函数式接口中常用的Supplier、Consumer、predicate、Function的总结以及其使用场
    首先介绍一下函数式接口:函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导......
  • 使用VBScript清理%AppData%\Microsoft\InputMethod\Chs下的UDP*.tmp文件
    目录代码使用方法话题来源彩蛋——Windows操作系统下到底有多少种脚本语言?代码'VBScripttolistUDP*.tmpfilesandaskuserfordeletionOptionExplicit'DeclarevariablesDimWSHShell,FSO,TargetFolder,FileCollection,FileDimTargetPattern,FilesToDelete,Fi......