Help / WLanguage / WLanguage functions / Standard functions / Process functions / Threads, semaphores, signals and mutex
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WindowsLinuxPHPWEBDEV - Browser code
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Stored procedures
Remark: These functions are also available in prefix syntax (Functions for managing threads (prefix syntax)).
The following functions are used to manage threads:
CriticalSectionEnables a name or on-variable critical section in the statement USING ... IN.
CriticalSectionEndMarks the end of critical section: the code will be run by another thread.
CriticalSectionStartMarks the start of a critical section: no other thread will be able to run the code as long as the current thread does not exit from the critical section.
EventChangeModifies the status of an event.
EventCloseCloses a synchronization event between several threads.
EventCreateCreates an event.
EventDestroyExplicitly destroys an event.
EventOpenOpens a synchronization event between several threads.
EventWaitLocks the current thread while waiting for the specified event to be opened.
ExecuteMainThreadTriggers the execution of the procedure specified in the main application thread.
ExecuteMainThreadAsynchronousExecutes a procedure in the main thread of the application without waiting for the end of its execution.
MutexCreateExplicitly creates a mutex.
MutexDestroyExplicitly destroys a mutex.
MutexEndSignals that the thread frees the mutex.
MutexStartLocks the current thread while waiting for the mutex to be freed.
SemaphoreCreateCreates a semaphore.
SemaphoreDestroyExplicitly destroys a semaphore.
SemaphoreEndAllows one or more threads to exit from the area protected by the semaphore.
SemaphoreStartLocks the current thread until the semaphore is opened (which means until a "free" spot becomes available in the protected section).
ThreadCurrentReturns the name of the thread currently run.
ThreadEndEnds the execution of the current thread.
ThreadExecuteStarts the execution of a secondary thread.
ThreadModeChanges the management mode of threads.
ThreadPausePauses the current thread during the specified duration.
ThreadPersistentMakes a thread persistent.
ThreadPriorityReturns or modifies the priority level of a thread.
ThreadRequestStopSends a stop request to a thread.
ThreadResumeResumes the execution of a thread that was interrupted by ThreadSuspend. Function not recommended.
ThreadSendSignalThe current thread sends a signal to the specified thread in order to unlock it.
ThreadStateReturns the current status of a thread.
ThreadStopStops a secondary thread. Function not recommended.
ThreadStopRequestedChecks if a stop request has been sent to the running thread.
ThreadSuspendTemporarily suspends the execution of the specified thread. Function not recommended.
ThreadWaitWaits for the end of the execution of the specified thread.
ThreadWaitSignalLocks the current thread until it receives a signal from another thread.
You also have the ability to use the following types of variables:
AutomaticEventThe AutomaticEvent type is used to manage an automatic event.
ManualEventThe ManualEvent type is used to manage a manual event.
Related Examples:
The threads Unit examples (WINDEV Mobile): The threads
[ + ] Using threads in an application:
- run a procedure in thread format
- stop a thread
- run a procedure that expects parameters in thread format
The threads Unit examples (WINDEV): The threads
[ + ] Using threads in an application:
- Run a procedure in thread format
- Stop a thread
- Run a procedure that expects parameters in thread format
The threads (pool) Unit examples (WINDEV): The threads (pool)
[ + ] Using threads:
- Running processes started in parallel
- Limiting the number of threads in execution at a given time
Reminder: A thread is a process running in parallel to the current application (main thread).
This allows you to run a task in background task for example (backup, ...).
Threads are very useful in the industry: supervisor, applications with real-time process check, and so on …
WD Using sockets Training (WINDEV): WD Using sockets
[ + ] This example presents the use of the "Socket" functions of WINDEV in Client/Server.
The following topics are presented in this example:
1/ How to connect to a socket
2/ How to accept a request for connection
3/ How to write or read on a socket
Summary of the example supplied with WINDEV:
This example presents the different functions for socket management supplied with WINDEV. To use this example, a first instance of the example must be started in "server" mode. Then, by specifying the name of the computer that will be used as server and a nickname, you can connect to this application in "client" mode. You now have the ability to send messages to all the connected users. In this example, a thread and a socket are associated with each connection.
WD FTP File Transfer Complete examples (WINDEV): WD FTP File Transfer
[ + ] WD FTP file transfer

This example is a full FTP client allowing you to store several FTP servers. Then, you have the ability to perform multi-file transfers from the local computer to the server or from the FTP server to the local computer. To do so, we are using the standard functions of WLanguage (FTPConnect, etc...)
Android Persistent Notifications Android (WINDEV Mobile): Android Persistent Notifications
[ + ] This example is used to create persistent notifications that appear even if the application is not used anymore.
A persistent thread run when the starting device is used to send the notifications.
Minimum version required
  • Version 9
This page is also available for…
Click [Add] to post a comment

Last update: 06/22/2023

Send a report | Local help