2014-07-21 11 views
2

코딩에 익숙하지 않고 디지털 캘리퍼스에서 정보를 읽고 웹 응용 프로그램의 텍스트 상자에 표시해야하는 첫 번째 프로젝트 중 하나입니다. 다른 프로젝트에서 코드를 찾았습니다. 다른 프로젝트에서 Windows 폼을 사용하는 곳에서 코드를 생성했습니다. Visual Studio 2013을 사용하고 있으며 Windows 양식 대신 웹 응용 프로그램에서 작동하도록 코드를 수정하고 있습니다. 내가 가지고있는 문제는 그들이 이해할 수없는 두 줄의 코드를 가지고 있으며 내 필요에 맞게 수정하는 방법에 대한 답을 찾지 못하는 것입니다. 코드는BeginInvoke에 대한 정의가 페이지에 포함되어 있지 않습니다.

this.BeginInvoke(new EventHandler(delegate { SetTheText(strErg); })); 
Application.DoEvents(); 

입니다. 문제는 BeginInvoke와 DoEvents() 모두에 정의가 없다는 오류가 있다는 것입니다. 이것을 웹 응용 프로그램으로 수정하는 방법이 있습니까? 아니면 둘 다에 대한 정의를 알 수있는 방법이 있습니까?

많은 사람들에게는 사소한 것처럼 보일 수도 있지만 알아낼 수는 없습니다. 어떤 도움이라도 대단히 감사하겠습니다!

다음 문장이 포함되어 있습니다. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Threading; using System.IO.Ports; Telerik.Web.UI를 사용하는 ; using System.Windows.Forms; using System.Web.Services.Protocols; using System.Web.Services

;

+0

파일 상단에있는'using' 문에는 무엇이 있습니까? ['System.Windows.Forms'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.begininvoke (v = vs.110) .aspx)가 포함되어 있습니까? – gunr2171

+0

@ gunr2171 예 system.windows.forms를 사용하고 있습니다. 내 모든 게시물을 포함하도록 내 게시물을 편집합니다. –

답변

3

웹 응용 프로그램에는 적용되지 않습니다.

웹 응용 프로그램과 달리 Windows 응용 프로그램에는 기본 또는 GUI 스레드가 있어야합니다. 따라서 BeginInvoke를 사용하여 해당 스레드에 명령을 마샬링해야 할 때가 많습니다.

DoEvents는 VB6에서 멀티 스레딩을 시뮬레이트하기 위해 사용되었습니다. 현대 Windows 응용 프로그램에는 필요하지 않습니다. 특히 비동기식/대기 형이 필요합니다. 일반적으로 사람들은 DoEvents를 호출하여 화면을 다시 그립니다. 이는 웹 앱에는 적용 할 수 없습니다.

결론적으로, 필요하지 않습니다. SetTheText를 직접 호출하면됩니다.

+0

좋습니다. 코드는 약간 구식 같았습니다. 이것이 내 프로그램이 실행되지 않는 문제 였지만 나는이 라인들을 꺼내었고 여전히 작동하기를 원하지 않는 것 같았다. 나는 그것을 알아 내기 위해 여러 가지 일을 계속 시도 할 것이다. 당신의 도움을 주셔서 감사합니다! –