Школоло / Говнокод #15803 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
procedure SetCurrentThreadName(const AName: String);
type
  TThreadNameInfo = record
      RecType: LongWord;
      Name: PChar;
      ThreadID: LongWord;
      Flags: LongWord;
    end;
var
  LThreadNameInfo: TThreadNameInfo;
begin
  with LThreadNameInfo do
  begin
    RecType := $1000;
    Name := PChar(AName);
    ThreadID := $FFFFFFFF; // -1 - текущий поток; также сюда можно вставить ID другого потока
    Flags := 0;
  end;
  try
    RaiseException($406D1388, 0, SizeOf(LThreadNameInfo) div SizeOf(LongWord),
      PDWord(@LThreadNameInfo));
  except
  end;
end;

Попытка создать именованный поток.
Не хак. (http://msdn.microsoft.com/en-us/library/xcb2z8hs%28VS.71%29.aspx)

Запостил: brutushafens brutushafens, (Updated )

Комментарии (6) RSS

  • Задокументированный хак хаком быть не перестаёт :).

    Я немного погуглил, получается, это такое хитрое сообщение отладчику.
    Ответить
      • Ну, по-моему, хак - это не всегда прямо что-то абсолютно плохое. Это просто хак. Недокументированный хак - вот это уже плохо.
        Ответить
  • Самая засада с этим в том, что дебуггер должен быть подключен в момент установки имени -- иначе просто ничего не произойдет.
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8