Comments 17
private void DoSmth()
{
try
{
Thread.CurrentThread.Abort();
}
finally
{
Thread.ResetAbort();
}
}
* This source code was highlighted with Source Code Highlighter.
static void DoSmth()
{
Action crash = delegate() { Thread.CurrentThread.Abort(); };
crash.EndInvoke( crash.BeginInvoke( null, null ) );
}
* This source code was highlighted with Source Code Highlighter.
да, это мое решение )
хабраюзеры в очередной раз удивили меня своей скоростью ))
хабраюзеры в очередной раз удивили меня своей скоростью ))
static void DoSmth()
{
try
{
Thread.CurrentThread.Abort();
}
catch (ThreadAbortException e)
{
Thread.ResetAbort();
throw e;
}
}
* This source code was highlighted with Source Code Highlighter.
Ответ был очевиден ))
но, раз уж не успел запостить нормальный вариант, сделал альтернативный :)
Разумеется костыль, но… работает )
но, раз уж не успел запостить нормальный вариант, сделал альтернативный :)
Разумеется костыль, но… работает )
static void DoSmth()
{
ConstructorInfo[] constructors = typeof(ThreadAbortException).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance);
foreach (var constructor in constructors)
{
if (constructor.GetParameters().Length == 0)
throw (Exception)constructor.Invoke(new object[0]);
}
}
* This source code was highlighted with Source Code Highlighter.
хех, интересно
правда, у сборки должны быть какие-то права, чтобы выполнять такой код, нет?
правда, у сборки должны быть какие-то права, чтобы выполнять такой код, нет?
хм… вопрос для размышления…
надо будет почитать на ту тему… по-моему нет… но может я и ошибаюсь.
надо будет почитать на ту тему… по-моему нет… но может я и ошибаюсь.
Не знаю можно ли делать так по условию, но вот:
- using System;
- using System.Threading;
- using System.Runtime.Serialization;
-
- class App
- {
-
- static void DoSmth()
- {
- Exception o = (Exception)FormatterServices.GetSafeUninitializedObject(typeof (ThreadAbortException));
- throw o;
- // TODO : Add code here
- }
-
- static void Main()
- {
- try
- {
- Console.WriteLine("veni");
- DoSmth();
- }
- catch (ThreadAbortException)
- {
- Console.WriteLine("vidi");
- }
- Console.WriteLine("vici");
- }
- }
* This source code was highlighted with Source Code Highlighter.
Sign up to leave a comment.
C#: Этюды, часть 5