비동기 호출을 수행하고 데이터 집합을 다시 가져 오는 C# 코드가 있습니다. Windows 데스크톱 UI가 검색되는 동안 멈추지 않거나 고정되지 않도록이 작업을 수행합니다. 지금은 vb.net에서 동일한 작업을 수행해야하지만 온라인 코드 변환기를 통해 퍼팅 한 후에 오류가 발생합니다.C#에서 VB로 코드 변환기를 사용하여 올바르게 오지 않는 비동기 스레딩
Delegate 'Func (Of String, Boolean, DataSet)'은 해당 생성자의 유일한 인수로 'AddressOf'표현식 또는 람다식이 필요합니다.
변환 전후의 코드입니다.
Dim DataFunc As var = New Func(Of String, String, DataSet)(getData)
Dim Result As IAsyncResult = DataFunc.BeginInvoke(barCodeResult, orderType, Nothing, Nothing)
Dim ds As DataSet = mtrDataFunc.EndInvoke(Result)
당신의 통찰력 사전에 대단히 감사합니다
var DataFunc = new Func<string, string, DataSet> (getData);
IAsyncResult Result = DataFunc.BeginInvoke(barCodeResult, orderType, null, null);
DataSet ds = DataFunc.EndInvoke(Result);
후 : 전에
.
는 대신 컨버터를 사용하는 언어를 이해해야합니다. 거의 모든 .NET 코드는 C#으로 작성되었습니다. 원래의 C# 코드는 * 좋지 않습니다. 나는 그것이 아주 오래된 프로젝트에서 복사되었다고 생각한다. 당신은'var result = await Task.Run (() => getData (barCodeResult, orderType)); '로 대체 할 수 있습니다. VB.NET에서 이에 해당하는 것은'Dim result = Await Task.Run (Function() getData (barCodeResult, orderType)) '입니다.' –
'getData'는 무엇을합니까? 함수가 데이터베이스 응답을 기다리는 경우 백그라운드에서 아무 것도 실행하지 않아도됩니다. ADO.NET 자체는 비동기 작업을 지원합니다. 예 :'SqlCommand.ExecuteReaderAsync'를 사용하여 독자를 비동기 적으로 반환 할 수 있습니다 –
내 대답이 내 문제를 해결하면 내 게시물 왼쪽의 체크/체크 표시를 눌러 "허용"으로 표시하십시오. 자세한 내용은 다음을 참조하십시오. [** 어떻게 대답을 받아들이 는가? **] (https://meta.stackexchange.com/a/5235) –