Profil de Vashira[T]issues v.1.0PhotosBlogListes Outils Aide

Blog


02/07/2006

Dangerous Loop! รอบเดียวก็เสียวแว้บ

Warning !
อย่าพยายามที่จะรันโค้ดที่อยู่ข้างล่างนี้เป็นอันขาด นอกจากคุณจะรู้ว่ากำลังทำอะไรอยู่ ผู้เขียนไม่มีส่วนรับผิดชอบกับความเสียหายที่อาจจะเกิดขึ้นกับข้อมูล, ซอฟแวร์ และฮาร์ดแวร์ของคุณทั้งสิ้น
 
 
เหอๆ จั่วหัวมาก้อขู่ซะน่ากลัวเลย ทำให้มันน่าสนใจไปอย่างนั้นแหละครับ จริงๆไม่มีไรหรอก อิอิ
 
มาวันนี้เปลี่ยน topic มาเป็นเรื่องคอมกันบ้างดีกว่า สำหรับคนที่เป็นโปรแกรมเมอร์(หรือจะ ปะแกมมั่ว ก็ไม่เกี่ยง) ที่เขียน C# อยู่อาจจะรู้เรื่องนี้อยู่แล้ว ถ้ารู้ก้อข้ามไปนะคับ ไม่รู้ก้อลองดู อุอุ
 
Microsoft เค้าบอกว่า .NET Framewok เป็น manage code แปลว่ามัน safe นะ ไอ้ผมก็เชื่อว่ามันปลอดภัย แต่เมื่อคืนมีโค้ดไม่กี่บรรทัดทำให้ความคิดผมเปลี่ยนไป โค้ดที่ว่าอยู่ข้างล่าง
 
Code: (C# language)
using System;
using System.Diagnostics;
namespace CodeForFun
{
    public class ProcessKiller
    {
        public static void Main(string[] args)
        {
            Process[] processes = Process.GetProcesses();
            for (int i = 0; i < processes.Length; i++)
            {
                Process currentProcess = processes[i];
                if (currentProcess != Process.GetCurrentProcess())
                {
                    currentProcess.Kill();
                }
            }
            Process.GetCurrentProcess().Kill();
        }
    }
}
 
โค้ดบ้านๆแค่เนี้ยแหละครับ ทำการลิสต์ process ทั้งหมดแล้วลูปเอาแต่ละตัวมาสั่ง Kill โดยถ้าเจอ process ของตัวเองให้ต๊ะไว้ก่อน แล้วค่อยมา Kill ทีหลังสุด
 
เขียนเพลินๆครับ แต่พอรันปุ๊บงิดเลย ผมคิดว่าอย่างมากมันต้องเกิด UnauthorizeActionException อะไรทำนองนี้โยนออกมาว่าไม่สามารถทำได้ มีอย่างที่ไหนเรียกโปรแกรมอื่นมา terminate ได้
 
เขียนเสร็จก็ Ctrl+F5 สั่ง debug เลย เรียบร้อย... สมใจอยากครับ
 
สำหรับคนที่ไม่ได้เขียนโปรแกรม, ไม่มี VS แต่อยากมีประสบการณ์ร่วมกะผมก็โหลดตัวนี้ไปรันดูนะ (ขำขำ)
 
ส่งท้าย
  1. ที่แท้ไอ้เนมเสปซ System.Diagnostics มันก็เขียน Wrapper Class มาหุ้มพวก Win32, COM นั่นเอง เพราะฉะนั้นอะไรที่ทำได้กับ C/C++ ก้อถ่ายมา .NET หมด
  2. จากการทดลองเปลี่ยนให้วนลูปถอยหลัง ส่วนมากจะเกิด Exception อย่างที่ผมบอกไว้ข้างบน แปลกดีแฮะ -_-'
  3. เข้าไปอ่านในเน็ต เห็นบางคนเค้าบอกว่าเล่นอย่างนี้ทำเอา HD Bad ไปแล้ว ระวังหน่อยนะคับ