Csharp/CSharp Tutorial/Thread/Thread Priority — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 12:20, 26 мая 2010

Thread priorities.

using System; 
using System.Threading; 
 
class MyThread { 
  public int count; 
  public Thread thrd; 
 
  public MyThread(string name) { 
    count = 0; 
    thrd = new Thread(this.run); 
    thrd.Name = name; 
  } 
 
  void run() { 
    Console.WriteLine(thrd.Name + " starting."); 
    do { 
      count++; 
 
        Console.WriteLine("In " + thrd.Name); 
    } while(count < 10000); 
 
    Console.WriteLine(thrd.Name + " terminating."); 
  } 
} 
 
class PriorityDemo { 
  public static void Main() { 
    MyThread mt1 = new MyThread("High Priority"); 
    MyThread mt2 = new MyThread("Low Priority"); 
 
    mt1.thrd.Priority = ThreadPriority.AboveNormal; 
    mt2.thrd.Priority = ThreadPriority.BelowNormal; 
 
    mt1.thrd.Start(); 
    mt2.thrd.Start(); 
 
    mt1.thrd.Join(); 
    mt2.thrd.Join(); 
 
    Console.WriteLine(); 
    Console.WriteLine(mt1.thrd.Name + " thread counted to " + mt1.count); 
    Console.WriteLine(mt2.thrd.Name + " thread counted to " + mt2.count); 
  } 
}
High Priority starting.
In High Priority
In High Priority
In High Priority
In High Priority
...
^CTerminate batch job (Y/N)? n

Thread priorities: ThreadPriority.Highest, ThreadPriority.Lowest

using System;
using System.Threading;
class MainClass
{
  public static void Countdown() 
  {
    for (int i = 10; i > 0; i--) 
    {
      Console.Write(i.ToString() + " ");
    }
  }
  public static void Main() 
  {
    Thread t2 = new Thread(new ThreadStart(Countdown));
    t2.Priority=ThreadPriority.Highest;
    Thread.CurrentThread.Priority=ThreadPriority.Lowest;
    t2.Start();
  }
}
10 9 8 7 6 5 4 3 2 1

User Thread: Name, ApartmentState, IsAlive, Priority, ThreadState

using System;
using System.Threading;
class MainClass
{
  static void MyThreadProc()
  {
    Thread.CurrentThread.Name = "TheSecondaryThread";
    Thread secondaryThread = Thread.CurrentThread;
    Console.WriteLine("Name? {0}", secondaryThread.Name);
    Console.WriteLine("Alive? {0}", secondaryThread.IsAlive);
    Console.WriteLine("Priority? {0}", secondaryThread.Priority);      
    Console.WriteLine("State? {0}", secondaryThread.ThreadState);
    Console.WriteLine();
    for(int i = 0; i < 1000; i ++)
    {
      Console.WriteLine("Value of i is: {0}", i);
      Thread.Sleep(5);
    }
  }
  [MTAThread]
  static void Main(string[] args)
  {
    // Start a new worker thread.
    Thread secondaryThread = new Thread(new ThreadStart(MyThreadProc));
    secondaryThread.Priority = ThreadPriority.Highest;
    secondaryThread.Start();
  }
}
Name? TheSecondaryThread
Alive? True
Priority? Highest
State? Running
Value of i is: 0
Value of i is: 1
Value of i is: 2
Value of i is: 3
Value of i is: 4
Value of i is: 5
Value of i is: 6
Value of i is: 7
Value of i is: 8
Value of i is: 9
Value of i is: 10
Value of i is: 11
Value of i is: 12
Value of i is: 13
Value of i is: 14
Value of i is: 15
Value of i is: 16
Value of i is: 17
Value of i is: 18
Value of i is: 19
Value of i is: 20
Value of i is: 21
Value of i is: 22
Value of i is: 23
Value of i is: 24
Value of i is: 25
Value of i is: 26
Value of i is: 27
Value of i is: 28
Value of i is: 29
Value of i is: 30
Value of i is: 31
Value of i is: 32
Value of i is: 33
Value of i is: 34
Value of i is: 35
Value of i is: 36
Value of i is: 37
Value of i is: 38
Value of i is: 39
Value of i is: 40
Value of i is: 41
Value of i is: 42
Value of i is: 43
Value of i is: 44
Value of i is: 45
Value of i is: 46
Value of i is: 47
Value of i is: 48
Value of i is: 49
Value of i is: 50
Value of i is: 51
Value of i is: 52
Value of i is: 53
Value of i is: 54
Value of i is: 55
Value of i is: 56
Value of i is: 57
Value of i is: 58
Value of i is: 59
Value of i is: 60
Value of i is: 61
Value of i is: 62
Value of i is: 63
Value of i is: 64
Value of i is: 65
Value of i is: 66
Value of i is: 67
Value of i is: 68
Value of i is: 69
Value of i is: 70
Value of i is: 71
Value of i is: 72
Value of i is: 73
Value of i is: 74
Value of i is: 75
Value of i is: 76
Value of i is: 77
Value of i is: 78
Value of i is: 79
Value of i is: 80
Value of i is: 81
Value of i is: 82
Value of i is: 83
Value of i is: 84
Value of i is: 85
Value of i is: 86
Value of i is: 87
Value of i is: 88
Value of i is: 89
Value of i is: 90
Value of i is: 91
Value of i is: 92
Value of i is: 93
Value of i is: 94
Value of i is: 95
Value of i is: 96
Value of i is: 97
Value of i is: 98
Value of i is: 99
Value of i is: 100
Value of i is: 101
Value of i is: 102
Value of i is: 103
Value of i is: 104
Value of i is: 105
Value of i is: 106
Value of i is: 107
Value of i is: 108
Value of i is: 109
Value of i is: 110
Value of i is: 111
Value of i is: 112
Value of i is: 113
Value of i is: 114
Value of i is: 115
Value of i is: 116
Value of i is: 117
Value of i is: 118
Value of i is: 119
Value of i is: 120
Value of i is: 121
Value of i is: 122
Value of i is: 123
Value of i is: 124
Value of i is: 125
Value of i is: 126
Value of i is: 127
Value of i is: 128
Value of i is: 129
Value of i is: 130
Value of i is: 131
Value of i is: 132
Value of i is: 133
Value of i is: 134
Value of i is: 135
Value of i is: 136
Value of i is: 137
Value of i is: 138
Value of i is: 139
Value of i is: 140
Value of i is: 141
Value of i is: 142
Value of i is: 143
Value of i is: 144
Value of i is: 145
Value of i is: 146
Value of i is: 147
Value of i is: 148
Value of i is: 149
Value of i is: 150
Value of i is: 151
Value of i is: 152
Value of i is: 153
Value of i is: 154
Value of i is: 155
Value of i is: 156
Value of i is: 157
Value of i is: 158
Value of i is: 159
Value of i is: 160
Value of i is: 161
Value of i is: 162
Value of i is: 163
Value of i is: 164
Value of i is: 165
Value of i is: 166
Value of i is: 167
Value of i is: 168
Value of i is: 169
Value of i is: 170
Value of i is: 171
Value of i is: 172
Value of i is: 173
Value of i is: 174
Value of i is: 175
Value of i is: 176
Value of i is: 177
Value of i is: 178
Value of i is: 179
Value of i is: 180
Value of i is: 181
Value of i is: 182
Value of i is: 183
Value of i is: 184
Value of i is: 185
Value of i is: 186
Value of i is: 187
Value of i is: 188
Value of i is: 189
Value of i is: 190
Value of i is: 191
Value of i is: 192
Value of i is: 193
Value of i is: 194
Value of i is: 195
Value of i is: 196
Value of i is: 197
Value of i is: 198
Value of i is: 199
Value of i is: 200
Value of i is: 201
Value of i is: 202
Value of i is: 203
Value of i is: 204
Value of i is: 205
Value of i is: 206
Value of i is: 207
Value of i is: 208
Value of i is: 209
Value of i is: 210
Value of i is: 211
Value of i is: 212
Value of i is: 213
Value of i is: 214
Value of i is: 215
Value of i is: 216
Value of i is: 217
Value of i is: 218
Value of i is: 219
Value of i is: 220
Value of i is: 221
Value of i is: 222
Value of i is: 223
Value of i is: 224
Value of i is: 225
Value of i is: 226
Value of i is: 227
Value of i is: 228
Value of i is: 229
Value of i is: 230
Value of i is: 231
Value of i is: 232
Value of i is: 233
Value of i is: 234
Value of i is: 235
Value of i is: 236
Value of i is: 237
Value of i is: 238
Value of i is: 239
Value of i is: 240
Value of i is: 241
Value of i is: 242
Value of i is: 243
Value of i is: 244
Value of i is: 245
Value of i is: 246
Value of i is: 247
Value of i is: 248
Value of i is: 249
Value of i is: 250
Value of i is: 251
Value of i is: 252
Value of i is: 253
Value of i is: 254
Value of i is: 255
Value of i is: 256
Value of i is: 257
Value of i is: 258
Value of i is: 259
Value of i is: 260
Value of i is: 261
Value of i is: 262
Value of i is: 263
Value of i is: 264
Value of i is: 265
Value of i is: 266
Value of i is: 267
Value of i is: 268
Value of i is: 269
Value of i is: 270
Value of i is: 271
Value of i is: 272
Value of i is: 273
Value of i is: 274
Value of i is: 275
Value of i is: 276
Value of i is: 277
^CTerminate batch job (Y/N)? n