Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vb.net中使循环异步_Vb.net - Fatal编程技术网

在vb.net中使循环异步

在vb.net中使循环异步,vb.net,Vb.net,我正在尝试创建一个应用程序来复制vb.net中的大量文件,我正在尝试使其异步,这样我就可以暂停、停止并在进度条上创建一个计数器,我已经研究了一点如何做,但我不太明白如何修改我的代码 这是我正在编写的大部分代码: Private Sub btnMoverImagenes_Click(sender As Object, e As EventArgs) Handles btnMoverImagenes.Click Dim carpetaProducto As String Dim ag

我正在尝试创建一个应用程序来复制vb.net中的大量文件,我正在尝试使其异步,这样我就可以暂停、停止并在进度条上创建一个计数器,我已经研究了一点如何做,但我不太明白如何修改我的代码

这是我正在编写的大部分代码:

Private Sub btnMoverImagenes_Click(sender As Object, e As EventArgs) Handles btnMoverImagenes.Click
    Dim carpetaProducto As String
    Dim agno As String
    Dim mes As String
    Dim dia As String
    Dim secuencia As String
    Dim rutaOrigen As String
    Dim RutaDestinoOp As String
    Dim RutaDestinoHis As String
    Dim archivo As String
    Dim DestinoArchivoOrigen As String
    Dim DestinoArchivoHistorico As String
    Dim idregistro As Integer
    Dim dsregistros As Integer
    Dim imagenMulti As String
    Dim nuevaRutaImagenMulti As String
    Dim nombreImagenOrigen As String
    Dim contadorIMGCopiadas As Integer = 0
    Dim contadorRegistros As Integer = 0
    Dim contadorArchivosSinImagen As Integer = 0
    Dim h1 As Date
    Dim h2 As Date
    Dim tiempoCarga As String
    Dim fechaCarga As String
    h1 = System.DateTime.Now
    ProgressBar1.Minimum = 0
    ProgressBar1.Maximum = 1000
    ProgressBar1.Value = 0
    ProgressBar2.Minimum = 0
    ProgressBar2.Maximum = 1000
    ProgressBar2.Value = 0
    fechaDesde = dtpDesde.ToString
    fechaHasta = dtpHasta.ToString
    dtpDesde.Format = DateTimePickerFormat.Custom
    dtpDesde.CustomFormat = "yyyyMMdd"
    fechaDesde = dtpDesde.Text
    dtpHasta.Format = DateTimePickerFormat.Custom
    dtpHasta.CustomFormat = "yyyyMMdd"
    fechaHasta = dtpHasta.Text
    dsImagenes = EjecutarXML(conexionDat, fechaDesde, fechaHasta)
    Try
        If dsImagenes.Tables(dsImagenes.Tables.Count - 1).Rows(0).Item(3) > 0 Then
            dsregistros = dsImagenes.Tables(0).Rows.Count
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = dsregistros
            ProgressBar1.Value = 0
            ProgressBar2.Minimum = 0
            ProgressBar2.Maximum = dsregistros
            ProgressBar2.Value = 0
            Label5.Text = ProgressBar1.Value.ToString + " de " + ProgressBar1.Maximum.ToString
            Label6.Text = ProgressBar2.Value.ToString + " de " + ProgressBar2.Maximum.ToString
            Log("******* SE INICIA CARGA *******")
            If dsImagenes.Tables(0).Rows.Count > 0 Then
                For Each row As DataRow In dsImagenes.Tables(0).Rows
                    archivo = row.Item(0).ToString()
                    carpetaProducto = row.Item(3).ToString()
                    rutaOrigen = row.Item(1).ToString()
                    idregistro = row.Item(2).ToString()
                    agno = row.Item(4).ToString()
                    mes = row.Item(5).ToString()
                    dia = row.Item(6).ToString()
                    secuencia = row.Item(7).ToString()
                    fechaCarga = row.Item(9).ToString()
                    imagenMulti = row.Item(8).ToString()
                    nombreImagenOrigen = row.Item(10).ToString()
                    nuevaRutaImagenMulti = carpetaProducto + "\" + agno + "\" + mes + "\" + dia + "\" + secuencia + "\" + nombreImagenOrigen
                    RutaDestinoOp = RutaDestinoNasOp + "\" + carpetaProducto + "\" + agno + "\" + mes + "\" + dia + "\" + secuencia
                    RutaDestinoHis = RutaDestinoNasHis + "\" + carpetaProducto + "\" + agno + "\" + mes + "\" + dia + "\" + secuenciavo
                    DestinoArchivoOrigen = RutaDestinoNasOp + "\" + carpetaProducto + "\" + agno + "\" + mes + "\" + dia + "\" + secuencia + "\" + nombreImagenOrigen
                    DestinoArchivoHistorico = RutaDestinoNasHis + "\" + carpetaProducto + "\" + agno + "\" + mes + "\" + dia + "\" + secuencia + "\" + archivo
                    Log("------------------------------------------------------------------------------")
                    Log("******* Inicio copia archivo IDREGISTRO: " + idregistro.ToString + " *******")
                    If ValidaExisteImagenOrigen(rutaOrigen) = True Then
                        If ValidarRutaOrigen(rutaOrigen) = True Then
                            If CargaNasHistorico(rutaOrigen, RutaDestinoHis, DestinoArchivoHistorico, conexionDat, idregistro) = True Then
                                If CargaNasOperativo(rutaOrigen, RutaDestinoOp, DestinoArchivoOrigen, conexionDat, idregistro, nuevaRutaImagenMulti) = True Then
                                    contadorIMGCopiadas = contadorIMGCopiadas + 1
                                    If ProgressBar2.Value < ProgressBar2.Maximum Then
                                        ProgressBar2.Value += 1
                                    End If
                                End If
                            End If
                        Else
                            If ValidaImagenHistorico(DestinoArchivoHistorico) = True Then
                                If CargaNasHistorico(rutaOrigen, RutaDestinoHis, DestinoArchivoHistorico, conexionDat, idregistro) = True Then
                                    contadorIMGCopiadas = contadorIMGCopiadas + 1
                                    If ProgressBar2.Value < ProgressBar2.Maximum Then
                                        ProgressBar2.Value += 1
                                    End If
                                Else
                                    Log("******* TODO OK, Registro id: " + idregistro.ToString + ". no se realiza copia de imagen *******")
                                    contadorIMGCopiadas = contadorIMGCopiadas + 1
                                    If ProgressBar2.Value < ProgressBar2.Maximum Then
                                        ProgressBar2.Value += 1
                                    End If
                                End If
                            End If
                        End If
                    Else
                        Log("******* ALERTA: Registro id: " + idregistro.ToString + " NO EXISTE *******")
                        contadorArchivosSinImagen = contadorArchivosSinImagen + 1
                    End If
                    contadorRegistros = contadorRegistros + 1
                    Log("******* Finaliza copia archivo IDREGISTRO: " + idregistro.ToString + " *******")
                    archivo = ""
                    carpetaProducto = ""
                    rutaOrigen = ""
                    idregistro = 0
                    agno = ""
                    mes = ""
                    dia = ""
                    secuencia = ""
                    If ProgressBar1.Value < ProgressBar1.Maximum Then
                        ProgressBar1.Value += 1
                    End If
                    Label5.Text = ProgressBar1.Value.ToString
                    Label6.Text = ProgressBar2.Value.ToString + " de " + ProgressBar2.Maximum.ToString
                Next
                h2 = System.DateTime.Now
                tiempoCarga = (h2 - h1).ToString
                MsgBox("Proceso Terminado, revisar log para ver el detalle del proceso completo")
                Log("------------------------------------------------------------------------------")
                Log("******* Copia Finalizada, IMAGENES COPIADAS: " + contadorIMGCopiadas.ToString + " DE " + dsregistros.ToString + " *******")
                Log("******* REGISTROS SIN IMAGENES: " + contadorArchivosSinImagen.ToString + " *******")
                Log("******* TIEMPO DE EJECUCION: " + tiempoCarga + " *******")
            End If
        Else
            MsgBox("sin datos para la fecha seleccionada")
        End If

    Catch ex As Exception
        MsgBox("ocurrio un error al buscar los datos")
    End Try
End Sub
Private Sub btnMoverImagenes\u Click(发送者作为对象,e作为事件参数)处理btnMoverImagenes。单击
将地毯调暗为细绳
暗烈火
将mes设置为字符串
直径如细绳
朦胧的丝弦
暗如弦
暗RutaDestinoOp作为字符串
暗淡的RutaDestinoHis就像一根绳子
作为字符串的Dim archivo
作为细绳的暗淡无睾丸激素
作为弦的模糊历史
Dim idregistro为整数
将DSR设置为整数
Dim imagenMulti As字符串
Dim Nuevarutaimagenas多字符串
Dim nombreImagenOrigen作为字符串
Dim CONTADORIMGCOPIDAS作为整数=0
Dim CONTADORROS作为整数=0
Dim contadorArchivosSinImagen作为整数=0
Dim h1作为日期
Dim h2作为日期
Dim tiempoCarga作为字符串
Dim fechaCarga作为字符串
h1=System.DateTime.Now
ProgressBar1。最小值=0
ProgressBar1.最大值=1000
ProgressBar1.Value=0
ProgressBar2.最小值=0
ProgressBar2.最大值=1000
ProgressBar2.Value=0
fechaDesde=dtpDesde.ToString
fechaHasta=dtpHasta.ToString
dtpDesde.Format=DateTimePickPerformat.Custom
dtpDesde.CustomFormat=“yyyyymmdd”
fechaDesde=dtpDesde.Text
dtpHasta.Format=DateTimePickerFormat.Custom
dtpHasta.CustomFormat=“yyyyymmdd”
fechaHasta=dtpHasta.Text
dsImagenes=EjecutarXML(conexionDat、fechaDesde、fechaHasta)
尝试
如果dsImagenes.Tables(dsImagenes.Tables.Count-1).行(0).项(3)>0,则
dsregistros=dsImagenes.Tables(0).Rows.Count
ProgressBar1。最小值=0
ProgressBar1.最大值=dsregistros
ProgressBar1.Value=0
ProgressBar2.最小值=0
ProgressBar2.最大值=dsregistros
ProgressBar2.Value=0
Label5.Text=ProgressBar1.Value.ToString+“de”+ProgressBar1.Maximum.ToString
Label6.Text=ProgressBar2.Value.ToString+“de”+ProgressBar2.Maximum.ToString
日志(“******SE INICIA CARGA*******”)
如果dsImagenes.Tables(0).Rows.Count>0,则
对于dsImagenes.Tables(0.Rows)中作为DataRow的每一行
archivo=row.Item(0).ToString()
地毯产品=行。项目(3)。ToString()
rutaOrigen=row.Item(1).ToString()
idregistro=row.Item(2).ToString()
agno=row.Item(4).ToString()
mes=行。项(5)。ToString()
直径=行。项目(6)。ToString()
secuencia=row.Item(7).ToString()
fechaCarga=row.Item(9).ToString()
imagenMulti=row.Item(8).ToString()
nombreImagenOrigen=row.Item(10).ToString()
nuevaRutaImagenMulti=地毯产品+“\”+agno+“\”+mes+“\”+dia+“\”+secuencia+“\”+nombreImagenOrigen
RutaDestinoOp=RutaDestinoNasOp+“\”+地毯产品+“\”+agno+“\”+mes+“\”+dia+“\”+secuencia
RutaDestinoHis=RutaDestinoNasHis+“\”+地毯产品+“\”+agno+“\”+mes+“\”+直径+“\”+秒
DestinoArchivoOrigen=RutaDestinoNasOp+“\”+地毯产品+“\”+agno+“\”+mes+“\”+迪亚+“\”+丝瓜胶+“\”+诺姆布雷图像
DestinoArchivoHistorico=RutaDestinoNasHis+“\”+地毯产品+“\”+agno+“\”+mes+“\”+dia+“\”+secuencia+“\”+archivo
日志(“-----------------------------------------------------------------------------------------------”)
日志(“******Inicio copia archivo Idregstro:“+Idregstro.ToString+”********”)
如果ValidaExisteImagenOrigen(rutaOrigen)=True,则
如果ValidarRutaOrigen(rutaOrigen)=真,则
如果CargaNasHistorico(rutaOrigen、RutaDestinoHis、DestinoArchivoHistorico、conexionDat、idregistro)=则为真
如果CargaNasOperativo(rutaOrigen、RutaDestinoOp、Destinoarchivorigen、conexionDat、idregistro、nuevaRutaImagenMulti)=则为真
contadorIMGCopiadas=contadorIMGCopiadas+1
如果ProgressBar2.值