本文整理汇总了C#中System.Threading.Thread.Resume方法的典型用法代码示例。如果您正苦于以下问题:C# Thread.Resume方法的具体用法?C# Thread.Resume怎么用?C# Thread.Resume使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Threading.Thread
的用法示例。
在下文中一共展示了Thread.Resume方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MenuComandos
private static void MenuComandos(Thread thread)
{
MenuOpcao();
do
{
_arquivos = Directory.GetFiles(_origem).ToList();
switch (_opcao)
{
case "start":
Thread.Sleep(3000);
thread.Start();
MenuComandos(thread = new Thread(MoveFile));
break;
case "pause":
Thread.Sleep(3000);
thread.Interrupt();
MenuComandos(thread = new Thread(MoveFile));
break;
case "resume":
Thread.Sleep(3000);
thread.Resume();
MenuComandos(thread = new Thread(MoveFile));
break;
case "abort":
Thread.Sleep(3000);
thread.Abort();
MenuComandos(thread = new Thread(MoveFile));
break;
default:
Console.WriteLine("Comando incorreto");
break;
}
} while (_arquivos.Count > 0);
}
示例2: Main
static void Main(string[] args)
{
//主线程不需要显示启动
Thread.CurrentThread.Name = "主线程";
Console.WriteLine("主线程启动");
//创建用户线程
Thread thread = new Thread(new ThreadStart(ThreadProc));
//启动用户线程
thread.Start();
//suspend user thread
thread.Suspend();
Console.WriteLine("用户线程挂起");
Console.WriteLine(thread.IsAlive);
//suspend 5s
Thread.Sleep(5000);
thread.Resume();
Console.WriteLine("用户线程恢复");
//suspend 5s
Thread.Sleep(5000);
//结束用户线程
thread.Abort();
thread.Join();
Console.WriteLine("用户线程结束");
Console.Read();
}
示例3: Run
public void Run()
{
Thread tA = new Thread( new ThreadStart( ThreadA ) );
Thread tB = new Thread( new ThreadStart( ThreadB ) );
Thread.CurrentThread.Name = "Main thread";
tA.Name = "Thread A";
tB.Name = "Thread B";
tA.Start();
tB.Start();
System.Console.WriteLine( "Suspending thread A" );
Thread.Sleep( 100 );
tA.Suspend();
Thread.Sleep( 2500 );
System.Console.WriteLine( "Suspending thread B" );
tB.Suspend();
Thread.Sleep( 2500 );
System.Console.WriteLine( "Running GC..." );
GC.Collect();
System.Console.WriteLine( "Suspending main thread" );
Thread.Sleep( 2500 );
tA.Resume();
_mreA.Set();
Thread.Sleep( 2500 );
tB.Resume();
_mreB.Set();
}
示例4: Main
static void Main(string[] args)
{
Console.WriteLine("主线程-创建线程实例");
//创建子线程
Thread thread = new Thread(new ThreadStart(ThreadProc));
Console.WriteLine("主线程-子线程状态:{0}", thread.ThreadState);
//启动子线程
Console.WriteLine("主线程调用start方法");
thread.Start();
Console.WriteLine("主线程-子线程状态{0}", thread.ThreadState);
Thread.Sleep(5000);
Console.WriteLine("主线程-调用suspend方法");
thread.Suspend();
Console.WriteLine("主线程-子线程状态{0}", thread.ThreadState);
Thread.Sleep(1000);
Console.WriteLine("主线程-调用resume方法");
thread.Resume();
Console.WriteLine("主线程-子线程状态{0}", thread.ThreadState);
Thread.Sleep(5000);
Console.WriteLine("主线程-调用abort方法");
thread.Abort();
Console.WriteLine("主线程-子线程状态{0}", thread.ThreadState);
Console.WriteLine("主线程-调用join方法");
Console.WriteLine("主线程-子线程状态{0}", thread.ThreadState);
Console.Read();
}
示例5: Kill
/// <summary>
/// Do our best to kill a thread, passing state info
/// </summary>
/// <param name="thread">The thread to kill</param>
/// <param name="stateInfo">Info for the ThreadAbortException handler</param>
public static void Kill(Thread thread, object stateInfo)
{
try
{
if (stateInfo == null)
thread.Abort();
else
thread.Abort(stateInfo);
}
catch (ThreadStateException)
{
#if !NETCF
// Although obsolete, this use of Resume() takes care of
// the odd case where a ThreadStateException is received.
#pragma warning disable 0618,0612 // Thread.Resume has been deprecated
thread.Resume();
#pragma warning restore 0618,0612 // Thread.Resume has been deprecated
#endif
}
#if !NETCF
if ( (thread.ThreadState & ThreadState.WaitSleepJoin) != 0 )
thread.Interrupt();
#endif
}
示例6: Teste_MultiThreading
public void Teste_MultiThreading()
{
// Thread Corrente
// Thread.CurrentThread.ManagedThreadId;
ThreadStart pontoEntrada = new ThreadStart(ExecutarTeste);
Thread _thread = new Thread(pontoEntrada);
_thread.Name = "Thread principal...";
_thread.Start();
_thread.Suspend();
_thread.Resume();
_thread.Abort();
try
{
}
catch (ThreadAbortException)
{
throw;
}
}
示例7: GetStackTrace
/// <summary>
/// http://stackoverflow.com/questions/285031/how-to-get-non-current-threads-stacktrace/14935378#14935378
/// </summary>
/// <param name="targetThread"></param>
/// <returns></returns>
private static StackTrace GetStackTrace(Thread targetThread)
{
ManualResetEventSlim fallbackThreadReady = new ManualResetEventSlim();
ManualResetEventSlim exitedSafely = new ManualResetEventSlim();
try
{
new Thread(delegate()
{
fallbackThreadReady.Set();
if (!exitedSafely.Wait(200))
{
try
{
targetThread.Resume();
}
catch (Exception) {/*Whatever happens, do never stop to resume the main-thread regularly until the main-thread has exited safely.*/}
}
}).Start();
fallbackThreadReady.Wait();
//From here, you have about 200ms to get the stack-trace.
targetThread.Suspend();
StackTrace trace = null;
try
{
trace = new StackTrace(targetThread, true);
}
catch (ThreadStateException)
{
//failed to get stack trace, since the fallback-thread resumed the thread
//possible reasons:
//1.) This thread was just too slow
//2.) A deadlock ocurred
//Automatic retry seems too risky here, so just return null.
}
try
{
targetThread.Resume();
}
catch (ThreadStateException) {/*Thread is running again already*/}
return trace;
}
finally
{
//Just signal the backup-thread to stop.
exitedSafely.Set();
}
}
示例8: CreateForThread
public static ApplicationHangException CreateForThread(Thread thread)
{
StackTrace tt = null;
if (!IsMono)
{
#if !CORECLR
#pragma warning disable 0618
try
{
thread.Suspend();
}
catch
{
return null;
}
try
{
tt = new System.Diagnostics.StackTrace(thread, false);
}
catch (ThreadStateException)
{
}
try
{
thread.Resume();
}
catch (Exception)
{
Thread.Sleep(3000);
thread.Resume();
}
#pragma warning restore 0618
#endif
}
return new ApplicationHangException(
tt,
thread.Name
);
}
开发者ID:antiufo,项目名称:Shaman.SingleThreadSynchronizationContext,代码行数:41,代码来源:ApplicationHangException.cs
示例9: MenuOpcoes
private static void MenuOpcoes(Thread thread)
{
Console.Clear();
Console.WriteLine("╔═══════════════════════════════════╗");
Console.WriteLine("║ Informe a opcao desejada: ║");
Console.WriteLine("║ 1- START ║");
Console.WriteLine("║ 2- PAUSE ║");
Console.WriteLine("║ 3- RESUME ║");
Console.WriteLine("║ 4- EXIT ║");
Console.WriteLine("╚═══════════════════════════════════╝");
opcao = int.Parse(Console.ReadLine());
switch (opcao)
{
case 1:
Console.Clear();
thread.Start();
//Console.WriteLine("Start...");
//Console.ReadKey();
MenuOpcoes(thread);
break;
case 2:
Console.Clear();
thread.Interrupt();
//Console.WriteLine("Pause...");
//Console.ReadKey();
MenuOpcoes(thread);
break;
case 3:
Console.Clear();
thread.Resume();
//Console.WriteLine("Resume...");
//Console.ReadKey();
MenuOpcoes(thread);
break;
case 4:
Console.Clear();
thread.Suspend();
//Console.WriteLine("Suspend");
//Console.ReadKey();
MenuOpcoes(thread);
break;
default:
Console.WriteLine("Este comando nao e valido!Tente novamente.");
break;
}
}
示例10: Main
static void Main(string[] args)
{
ThreadStart ts = new ThreadStart(Method);
Thread t = new Thread(ts);
t.Start(); // Запуск потока.
Console.WriteLine("Нажмите любую клавишу для остановки");
Console.ReadKey();
t.Suspend(); // Приостановка потока.
Console.WriteLine("Поток остановлен!");
Console.WriteLine("Нажмите любую клавишу для возобновления");
Console.ReadKey();
t.Resume(); // Возобновление работы.
}
示例11: Main
static void Main(string[] args)
{
ThreadStart ts = new ThreadStart(Method);
Thread t = new Thread(ts);
t.Start();
Console.WriteLine("Press any key to stop stream");
Console.ReadKey();
t.Suspend();
Console.WriteLine("Stream stoped");
Console.WriteLine("Press any key to continue stream");
Console.ReadKey();
t.Resume();
}
示例12: SuspendCase
private static void SuspendCase()
{
Thread t = new Thread(() =>
{
Thread.CurrentThread.Suspend();//.net2.0开始已经废弃挂起方法
Console.WriteLine("current abort thread id:{0}", Thread.CurrentThread.ManagedThreadId);
});
t.Start();
Console.WriteLine("main thread resume child thread.");
t.Resume();
Console.WriteLine("completed.");
}
示例13: Main
static void Main()
{
CharGenerator g1 = new CharGenerator();
CharGenerator g2 = new CharGenerator();
CharGenerator g3 = new CharGenerator();
Thread t1 = new Thread(new ThreadStart(g1.GenerateChar));
Thread t2 = new Thread(new ThreadStart(g2.GenerateChar));
Thread t3 = new Thread(new ThreadStart(g3.GenerateChar));
t1.Start();
t2.Start();
t3.Start();
string input = "";
do
{
Console.WriteLine("Enter \"try\" when you're ready, \"exit\" to escape");
input = Console.ReadLine();
if (input == "try" || input == "t")
{
t1.Suspend();
t2.Suspend();
t3.Suspend();
if (g1.ch == g2.ch && g2.ch == g3.ch)
{
Console.WriteLine(g1.ch + " " + g2.ch + " " + g3.ch + " won");
}
else
{
Console.WriteLine(g1.ch + " " + g2.ch + " " + g3.ch + " lost");
}
t1.Resume();
t2.Resume();
t3.Resume();
}
Thread.Sleep(100);
} while (input != "exit");
g1.end = true;
g2.end = true;
g3.end = true;
return;
}
示例14: Start
public void Start()
{
System.Threading.Thread work1 = new System.Threading.Thread (WorkA);
System.Threading.Thread work2 = new System.Threading.Thread (WorkB);
work1.Priority = ThreadPriority.Lowest;
work2.Priority = ThreadPriority.Highest;
work1.Start();
work2.Start();
work1.Suspend();
Console.ReadLine();
work1.Resume();
Console.ReadLine();
}
示例15: run
/// <summary>
/// 报警线程
/// </summary>
public void run()
{
strSend = "正在初始化...";
label1.Text = "正在初始化...";
send(strSend);
Thread.Sleep(5000);
showBreakRecord();
Thread t1 = new Thread(new ThreadStart(showBadRecord));
t1.IsBackground = true;
t1.Start();
while (true)
{
//-----设置断网信息输出时间间隔-----
Thread.Sleep(120000);
t1.Suspend();
showBreakRecord();
t1.Resume();
}
}