# Native Code > برنامه نویسی در Delphi > توسعه نرم افزارهای تحت شبکه >  کریتیکال سکشن چیست ؟

## sajioo

سلام دوستان کریتیکال سکشن چیست و اگه میشه چند نمونه مثال و کد برای بنده بگید تا بیشتر آشنا بشم.
برای مثال من از indytcpserver استفاده میکنم. و باید در هر بار Executeکردن از آرایه سراسری ip  استفاده کنم و با حلقه اون آرایه رو پیمایش کنم . چطور میتونم از کریتیکال سکشن استفاده کنم و کاربرد آن برای من چیست؟ 
متنی که در ویکی پدیا پیدا کردم 



> In concurrent programming, a *critical section is a piece of code that accesses a shared resource (data structure or device) that must not be concurrently accessed by more than one thread of execution.[1] A critical section will usually terminate in fixed time, and a thread, task, or process will have to wait for a fixed time to enter it (aka bounded waiting). Some synchronization mechanism is required at the entry and exit of the critical section to ensure exclusive use, for example a semaphore.*


عنوان تایپیک اشتباست .ادمین عزیز تغییرش بده لطفا

----------


## BORHAN TEC

با سلام،
در برخی موارد ممکنه که بخواهید در برنامه های مبتنی بر ترد یک شی یا یک متغیر به صورت امن استفاده کنید و یا اون رو تغییر بدید، به طوری که در لحظه فقط در اختیار یک ترد باشه و نتونه به صورت همزمان یا زمانی که خودمون اجازه بدیم در اختیار ترد دیگه ای قرار بگیره. برای این منظور از Critical Section استفاده می کنیم. این هم یک مثال ساده که نحوه کار رو توضیح میده:
//global variables
var 
CriticalSection: TRTLCriticalSection;
    a, b: integer; 


//before the threads starts
InitializeCriticalSection(CriticalSection); 


//in the thread 
EnterCriticalSection(CriticalSection); 
//From now on, you can safely make 
//changes to the variables. 
  inc(a); 
  inc(b); 
//End of safe block 
LeaveCriticalSection(CriticalSection); 

برای توضیحات بیشتر هم مقاله ای که ضمیمه کرده ام رو ببینید.

نکته: کلاسها و نوع های بالا فقط در ویندوز قابل استفاده هستند و در برنامه های چند سکویی روش کار متفاوت خواهد بود. در این صورت باید به جای TRTLCriticalSection از TCriticalSection استفاده کنید.
موفق باشید...

----------


## Mask

بد نیست یه مقدار جستجو کنید و بعد پست بزنید .اقا شاهین زحمت جواب دادن رو کشیدند . کافیه کلمه *critical section* رو در جستجو سایت انجام میدادید. تا متوجه بشید به کرات در این مورد بحث و نمونه گزاشته شده.*
در این لینک من به طور واضح توضیح و نمونه قرار داده ام، میتونید استفاده کنید.*

----------

