PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US
  • Using critical sections
  • Various
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Marks the end of critical section: the code will be run by another thread.
To mark the start of critical section, use CriticalSectionStart.
Versions 24 and later
WindowsLinuxUniversal Windows 10 App When the calls to CriticalSectionStart and CriticalSectionEnd are in the same section of the code, it is recommended to use the type CriticalSection and the syntax USE ... IN.
Example:
// Using a Critical Section variable
S is CriticalSection

// Use for a code block
//---------------------------
UTILISSRIN
// code protected by the critical section
// only one thread will execute this code at a given moment
END
New in version 24
WindowsLinuxUniversal Windows 10 App When the calls to CriticalSectionStart and CriticalSectionEnd are in the same section of the code, it is recommended to use the type CriticalSection and the syntax USE ... IN.
Example:
// Using a Critical Section variable
S is CriticalSection

// Use for a code block
//---------------------------
UTILISSRIN
// code protected by the critical section
// only one thread will execute this code at a given moment
END
WindowsLinuxUniversal Windows 10 App When the calls to CriticalSectionStart and CriticalSectionEnd are in the same section of the code, it is recommended to use the type CriticalSection and the syntax USE ... IN.
Example:
// Using a Critical Section variable
S is CriticalSection

// Use for a code block
//---------------------------
UTILISSRIN
// code protected by the critical section
// only one thread will execute this code at a given moment
END
Versions 18 and later
Universal Windows 10 App This function is now available in Windows Store apps mode.
New in version 18
Universal Windows 10 App This function is now available in Windows Store apps mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
Versions 19 and later
Linux This function is now available for the WEBDEV sites in Linux.
WINDEVLinux This function is now available for the WINDEV applications in Linux.
New in version 19
Linux This function is now available for the WEBDEV sites in Linux.
WINDEVLinux This function is now available for the WINDEV applications in Linux.
Linux This function is now available for the WEBDEV sites in Linux.
WINDEVLinux This function is now available for the WINDEV applications in Linux.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Example
Versions 21 and later
WindowsLinuxUniversal Windows 10 App
// Critical section on a variable
t is array <critical section> of int
CriticalSectionStart(t)
// Operations on the array by one only thread at a time
CriticalSectionEnd(t)
New in version 21
WindowsLinuxUniversal Windows 10 App
// Critical section on a variable
t is array <critical section> of int
CriticalSectionStart(t)
// Operations on the array by one only thread at a time
CriticalSectionEnd(t)
WindowsLinuxUniversal Windows 10 App
// Critical section on a variable
t is array <critical section> of int
CriticalSectionStart(t)
// Operations on the array by one only thread at a time
CriticalSectionEnd(t)
// Use of a named critical section
CriticalSectionStart("MySection")
// Two threads will not be able to run this code at the same time
...
CriticalSectionEnd("MySection")
Syntax
Versions 24 and later
WindowsLinuxUniversal Windows 10 App

Ending a critical section on a code section: using the CriticalSection type Hide the details

TCriticalSectionStart(<Critical section>)
<Critical section>: CriticalSection variable
Name of the CriticalSection variable used to identify the critical section.
New in version 24
WindowsLinuxUniversal Windows 10 App

Ending a critical section on a code section: using the CriticalSection type Hide the details

TCriticalSectionStart(<Critical section>)
<Critical section>: CriticalSection variable
Name of the CriticalSection variable used to identify the critical section.
WindowsLinuxUniversal Windows 10 App

Ending a critical section on a code section: using the CriticalSection type Hide the details

TCriticalSectionStart(<Critical section>)
<Critical section>: CriticalSection variable
Name of the CriticalSection variable used to identify the critical section.
Versions 21 and later
WindowsLinuxUniversal Windows 10 App

Ending a critical section on a variable Hide the details

CriticalSectionEnd([<Variable name>])
<Variable name>: Any type
Name of WLanguage variable that was protected in a critical section by CriticalSectionStart. This variable must be defined with the attribute <critical section>.
New in version 21
WindowsLinuxUniversal Windows 10 App

Ending a critical section on a variable Hide the details

CriticalSectionEnd([<Variable name>])
<Variable name>: Any type
Name of WLanguage variable that was protected in a critical section by CriticalSectionStart. This variable must be defined with the attribute <critical section>.
WindowsLinuxUniversal Windows 10 App

Ending a critical section on a variable Hide the details

CriticalSectionEnd([<Variable name>])
<Variable name>: Any type
Name of WLanguage variable that was protected in a critical section by CriticalSectionStart. This variable must be defined with the attribute <critical section>.

Ending a named critical section on a code section Hide the details

CriticalSectionEnd([<Section name>])
<Section name>: Optional character string (with quotes)
Identifies the critical section.
Remarks

Using critical sections

To handle critical sections, the management mode of threads must be changed by ThreadMode (associated with the ThreadCriticalSection constant).

Various

  • For more details on critical sections, see Managing the critical sections.
  • If a thread is destroyed while it is found in a critical section, the critical section is automatically freed.
  • A single thread is allowed in all the sections with the same name.
  • If sections use a different name, a thread can run the code of one section while another thread runs the code of another section.
Component : wd240vm.dll
Minimum required version
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment