양식 응용 프로그램에 의사 업데이트 함수를 구현하고 콘솔에서 확인
7842 단어 양식 응용VisualStudio자동 업데이트C#콘솔
개요
Windows Forms 응용 프로그램에서 Unity Update 함수와 같은 매 프레임 자동 업데이트하는 환경을 구현해 보았습니다.
또한 양식 응용 프로그램에서 콘솔을 사용하는 방법도 이번에 조사했기 때문에 공유
환경
windows10
Visual Studio 2019
구현
프로젝트를 만들 때까지 과거 기사를 참조하십시오.
콘솔을 양식 응용 프로그램으로 구현
1. 프로젝트를 만든 후 먼저 form1을 마우스 오른쪽 버튼으로 클릭하고 코드 표시를 선택하여 코드를 표시합니다.
2. 다음 코드를 입력
Form1.cspublic partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
public Form1()
{
InitializeComponent();
AllocConsole();
Console.WriteLine("hogehoge");
}
}
실행하면 양식과 콘솔 창의 두 가지가 표시되고 Console.WriteLine을 사용할 수 있습니다.
Update 함수 구현
Form1_Activated 이벤트를 추가하고 거기에서 While(true)를 돌리는 방법도 있지만, 방해가 될 것 같기 때문에 이번에는 backgroundWorker를 사용해, 개별적으로 Update 함수를 구현하기로 한다
1. 툴박스에서 'backgroundWorker'를 form1에 D&D하고 더블 클릭하여 backgroundWorker1_DoWork 이벤트 추가
2.backgroundWorker1_DoWork에 다음 코드를 입력
Form1.csprivate void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
Console.WriteLine("hoge");
}
}
3. BackgroundWorker 속성 탭에서 아래 그림과 같이 "WorkerReportsProgress""WorkerSupportsCancellation"의 두 가지를 false에서 true로 변경합니다.
4. FormClosing 이벤트를 추가하고 아래 코드 추가 (자세한 방법은 과거 기사 참조)
Form1.csprivate void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//スレッドの終了を待機
backgroundWorker1.CancelAsync();
Application.DoEvents();
}
5.Form1 함수에
backgroundWorker1.RunWorkerAsync();
추가하여 완성
일단 namespace 이하의 코드 전체를 실어 둡니다
Form1.cspublic partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
public Form1()
{
InitializeComponent();
AllocConsole();
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
Console.WriteLine("hoge");
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//スレッドの終了を待機
backgroundWorker1.CancelAsync();
Application.DoEvents();
}
}
실행 결과
hoge
hoge
hoge
hoge
hoge
hoge
hoge
hoge
hoge
...
무례한
이것으로 Unity 같은 감각을 조금이라도 얻을 수 있을지도
참고 URL
콘솔 표시 방법
htps //w w. 우리. jp / b ぉ g / ㄱ t 푸 t-x tst rin g-와 - 안녕하세요 ぇ ぃ ぃ ん ぃ- 샤 rp
Reference
이 문제에 관하여(양식 응용 프로그램에 의사 업데이트 함수를 구현하고 콘솔에서 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/miwazawa/items/6c4f6205962402733a0a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
windows10
Visual Studio 2019
구현
프로젝트를 만들 때까지 과거 기사를 참조하십시오.
콘솔을 양식 응용 프로그램으로 구현
1. 프로젝트를 만든 후 먼저 form1을 마우스 오른쪽 버튼으로 클릭하고 코드 표시를 선택하여 코드를 표시합니다.
2. 다음 코드를 입력
Form1.cspublic partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
public Form1()
{
InitializeComponent();
AllocConsole();
Console.WriteLine("hogehoge");
}
}
실행하면 양식과 콘솔 창의 두 가지가 표시되고 Console.WriteLine을 사용할 수 있습니다.
Update 함수 구현
Form1_Activated 이벤트를 추가하고 거기에서 While(true)를 돌리는 방법도 있지만, 방해가 될 것 같기 때문에 이번에는 backgroundWorker를 사용해, 개별적으로 Update 함수를 구현하기로 한다
1. 툴박스에서 'backgroundWorker'를 form1에 D&D하고 더블 클릭하여 backgroundWorker1_DoWork 이벤트 추가
2.backgroundWorker1_DoWork에 다음 코드를 입력
Form1.csprivate void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
Console.WriteLine("hoge");
}
}
3. BackgroundWorker 속성 탭에서 아래 그림과 같이 "WorkerReportsProgress""WorkerSupportsCancellation"의 두 가지를 false에서 true로 변경합니다.
4. FormClosing 이벤트를 추가하고 아래 코드 추가 (자세한 방법은 과거 기사 참조)
Form1.csprivate void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//スレッドの終了を待機
backgroundWorker1.CancelAsync();
Application.DoEvents();
}
5.Form1 함수에
backgroundWorker1.RunWorkerAsync();
추가하여 완성
일단 namespace 이하의 코드 전체를 실어 둡니다
Form1.cspublic partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
public Form1()
{
InitializeComponent();
AllocConsole();
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
Console.WriteLine("hoge");
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//スレッドの終了を待機
backgroundWorker1.CancelAsync();
Application.DoEvents();
}
}
실행 결과
hoge
hoge
hoge
hoge
hoge
hoge
hoge
hoge
hoge
...
무례한
이것으로 Unity 같은 감각을 조금이라도 얻을 수 있을지도
참고 URL
콘솔 표시 방법
htps //w w. 우리. jp / b ぉ g / ㄱ t 푸 t-x tst rin g-와 - 안녕하세요 ぇ ぃ ぃ ん ぃ- 샤 rp
Reference
이 문제에 관하여(양식 응용 프로그램에 의사 업데이트 함수를 구현하고 콘솔에서 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/miwazawa/items/6c4f6205962402733a0a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
public Form1()
{
InitializeComponent();
AllocConsole();
Console.WriteLine("hogehoge");
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
Console.WriteLine("hoge");
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//スレッドの終了を待機
backgroundWorker1.CancelAsync();
Application.DoEvents();
}
backgroundWorker1.RunWorkerAsync();
public partial class Form1 : Form
{
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern bool AllocConsole();
public Form1()
{
InitializeComponent();
AllocConsole();
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (!backgroundWorker1.CancellationPending)
{
Console.WriteLine("hoge");
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//スレッドの終了を待機
backgroundWorker1.CancelAsync();
Application.DoEvents();
}
}
hoge
hoge
hoge
hoge
hoge
hoge
hoge
hoge
hoge
...
무례한
이것으로 Unity 같은 감각을 조금이라도 얻을 수 있을지도
참고 URL
콘솔 표시 방법
htps //w w. 우리. jp / b ぉ g / ㄱ t 푸 t-x tst rin g-와 - 안녕하세요 ぇ ぃ ぃ ん ぃ- 샤 rp
Reference
이 문제에 관하여(양식 응용 프로그램에 의사 업데이트 함수를 구현하고 콘솔에서 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/miwazawa/items/6c4f6205962402733a0a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(양식 응용 프로그램에 의사 업데이트 함수를 구현하고 콘솔에서 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miwazawa/items/6c4f6205962402733a0a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)