在vb.net中使循环异步
我正在尝试创建一个应用程序来复制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
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.值