스레드 노트
15772 단어 라인
private
void button1_Click(
object sender, EventArgs e)
{
CountTime();
}
//
void CountTime()
{
for (
int i
=
0; i
<
999999999; i
++)
{
}
MessageBox.Show(
" !");
}
// UI
private
void button2_Click(
object sender, EventArgs e)
{
//
Thread threadFirst
=
new Thread(CountTime);
threadFirst.Start();
}
、 4 :
1
2 System.Threading
3 Thread , ( , )
4 Thread Start , CPU ,
CPU
:
: ,
// UI
private
void button2_Click(
object sender, EventArgs e)
{
//
Thread threadFirst
=
new Thread(CountTime);
//
threadFirst.IsBackground
=
true;
threadFirst.Start();
}
: “textBox1” 。
//현재 창을 닫고 쓸데없는 크로스 라인 접근 수정 텍스트 상자 컨트롤에 대한 검사
TextBox.CheckForIllegalCrossThreadCalls = false;
void ChangeTxt()
{
lock (
this)
{
for (
int i
=
0; i
<
1000; i
++)
{
int a
=
int.Parse(textBox1.Text);
a
++;
textBox1.Text
= a.ToString();
}
}
}
//
private
void button3_Click(
object sender, EventArgs e)
{
Thread thread
=
new Thread(ChangeTxt);
thread.IsBackground
=
true;
thread.Start();
Thread thread2
=
new Thread(ChangeTxt);
thread.IsBackground
=
true;
thread2.Start();
}
lock CPU
5 Thread류의 중요한 멤버들.
Start() 부팅 스레드
Abort() 종료 스레드
Thread.Sleep(1) 정적 방법으로 현재 스레드를 일정 시간 정지시킬 수 있습니다
Name 스레드 이름
Thread.현재 스레드 참조를 얻으려면 CurrentThread를 사용하십시오.
6 아날로그 라인 내부 구조
//
public
class MyThread
{
//------------ ------------
ThreadStart threads;
//
public MyThread(ThreadStart ts)
// new
{
this.threads
= ts;
//
}
public
void Start()
{
threads();
// ,
}
//-------------- ------------
ParameterizedThreadStart pts;
//
public MyThread(ParameterizedThreadStart pts)
// new
{
this.pts
= pts;
//
}
public
void Start(
object o)
{
pts(o);
// ,
}
}
//
MyThread mth = new MyThread(CountTime);
//
void ShowTxtName(
object name)
{
if (name
!=
null)
{
MessageBox.Show(
"name="
+ name.ToString());
}
else
{
MessageBox.Show(
"null");
}
}
private
void button4_Click(
object sender, EventArgs e)
{
Thread thread
=
new Thread(ShowTxtName);
// object
thread.IsBackground
=
true;
thread.Start(textBox2.Text);
// object public void Start(object parameter);
}
//
void ShowTxtName2(
object li)
{
List
<
string
>list
=li
as List
<
string
>;
if (list
!=
null)
{
foreach (
string s
in list)
{
MessageBox.Show(s);
}
}
}
private
void button5_Click(
object sender, EventArgs e)
{
Thread thread5
=
new Thread(ShowTxtName2);
thread5.IsBackground
=
true;
thread5.Start(
new List
<
string
>() {
" ",
" ",
" " });
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 라인과synchronized 키워드를 깊이 있게 설명하다루틴이야말로 프로그램의 집행자이고 여러 루틴 간에 프로세스 중의 자원을 공유하고 있다.하나의 cpu는 동시에 하나의 라인만 실행할 수 있으며, 모든 라인은 하나의 타임 슬라이스가 있으며, 타임 슬라이스가 다 사용하면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.