Си диез / Говнокод #9868 Ссылка на оригинал

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
public class CatalogCache : IDIsposable
{
    public void Dispose()
    {
        if (_loadThread != null)
        {
            if (_loadThread.IsAlive)
                _loadThread.Abort();
        }

        if (_updateThread != null)
        {
            if (_updateThread.IsAlive)
                _updateThread.Abort();
        }
}

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

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

    • Специально для тебя:
      new[] { loadThread, updateThread  }
          .Where(t => t != null && t.IsAlive)
          .AsParallel()
          .ForEach(t => t.Abort());
      Ответить
      • LINQ, LINQ... В той же Scala это выглядит примерно также:
        Array(loadThread, updateThread).filter(t => t != null && t.isAlive).foreach(_.stop())
        Ответить
        • Породим два потока чтобы грохнуть два потока
          а то двое на одного не честно
          Ответить
        • Я об таком бездумном использовании .AsParallel() уже говорил.
          И пояснял на пальцах, почему оно обычно совсем не нужно.

          >Породим два потока чтобы грохнуть два потока
          Так это ж многопоточно! И быстрей в джва раза!!!
          Ответить
  • В этом вашем .NET делать аборты тоже считается дурным тоном?
    в java это называется Thread.stop() и давным давно задепрекейчено
    Ответить
      • аборт треда вообще (а вдруг у него там файлы открытые)
        у нас хорошим тоном считается примерно такая организация задачи для потока при ручной имплементации:
        while(!currentThread().isInterrupted() && hasThingsToDo()) {
            doTheStuff();
        }
        cleanUp();
        Однако даже так сейчас мало кто пишет, ведь есть Executors framework.
        Ответить
        • у додиезников хорошим тоном считается если компилируется и если дали MVP
          Ответить
        • >Executors framework
          Охеренно спроектированная вещь.
          На мой взгляд java.util.concurent одна из самых удобных вещей, что есть по дефолту в яве.
          Ответить
  • А кто первый заметит, что одной } не хватает?
    Ответить
    • Да судя по IDIsposable, по крайней мере часть кода набита руками.

      Другой вопрос, а как правильно? Ну, если поток сделан, как выше показано, то задать условие для завершения и дальше Join.
      Не хватает _loadThread = null; , т.к. Dispose может вызваться и дважды.
      Другой момент, что ведь в Dispose нельзя обращаться к объектам, они ведь могут быть уже подчищены сборщиком мусора.
      Ответить
      • > Другой момент, что ведь в Dispose нельзя обращаться к объектам, они ведь могут быть уже подчищены сборщиком мусора.

        ЧОЧО пока объектом кто-то владее, уборщик его не трогает
        Ответить
  • х(L.Y,S(U"Y"I!E?O,Z$FF)C.M)I:EMD?P"TG!O(O Q.W$S,GN:N)L.M:V,BMB)XO$E:B)R(W"BQ.I$P,I"I(R.B N.B"B!O?Q)W)M:W"N D!X!V.ZEN$FL,F.A:Y:C:N.KS:I)V"T(W U"W.DS:K,X"G O$V,P$K(X.P(X?T P J)C?C(C)G T:D$D)L YJ!T$E(O?WV)D$D?Q"P$B?PC?P.N:L(T(Y:F.H(P F:I!Z.Q,N?W?R:L!E:P"S$A(F,Y)A?N(P"O,D S"J(Z.V?S"G$C K?Y(I.H:L D)I)C.L.W)I(B:F,Q B$U)J:T:R(D)D:A!T)V)X!O)H.M$Q!C$R:F$KH?X,K(I.Q)W.E!I)Z(C?Z:X(R$IQ"AO"RSG$Z$W,M"S(ND AA(Y"G?Q?U(A"D$G)R?V(Z:VH(E$Q)F:L?UTI,Z!N,N!C,D?J YB$U?T(Q)K(U(O(O DE$M:S"E N:Y$J X?L,P)A R"W(M!F!Q M)U.P!P.A:Z:U(Z"F)ZB(I UQ.O"N!C!A:N$I:I.L,G?E:L!N Z,T,L)K:X:P.X!S!B(T!X$IP(I?QM$F W"M R:W(F:CI!D!P!G!C(H?A"Q?F(W"Z?L:R.A$D)J.V,M"J?T(I!S,B,M J)A?S(B!Z"L"TU.P!F)K!U?W,T!W X)H(K!X,K JH:C"W$M$VНWKBELVPWAFDUBFCCBIRKQLUZOMFGRPFCXZUUJRKTKIILVCUHXYYRVIEMAPZIUAWSIDBICOECJHDLBRWVIKUYIHCBSWEXLGEBNPYFHOOOZIFQMSTBHGMYVYMDCMOJHMUZUYZTVSYVDVSCVCWBCZYMFGTFUHYBJLADZEIOQWKWOTUNKNFHIBWNUUHZYXXFEOIKHOIOTRLKIPR
    Ответить
  • Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» тоже, а тут, к матери родной ревнует!
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8