Advertisement
Guest User

Untitled

a guest
Jan 18th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 1.81 KB | None | 0 0
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4. rem on initialise le multi-threading
  5. if not "%~1"=="" goto %1
  6. set Thread=call :Thread
  7. set ThreadCaller="%~f0"
  8.  
  9. rem on ajoute un thread (mais on l'exécute pas)
  10. %Thread%.New mon_premier_Thread
  11. %Thread%.New mon_deuxieme_Thread
  12.  
  13. rem on exécute tout les threads
  14. %Thread%.StartAll
  15.  
  16.  
  17. pause>nul&exit
  18. :mon_premier_Thread
  19.  
  20. rem Initialisation du thread, cette partie est exécutée une seule fois au lancement du thread
  21. rem on peut donc initialiser nos variables ici
  22. set n=0
  23.  
  24. rem Cette partie tournera en boucle, on est pas obligé de la mettre,
  25. rem cela dépend de ce que vous voulez faire ;)
  26. for /l %%i in () do (
  27.  
  28.   rem Votre CODE ICI
  29.  
  30.  
  31.   rem exemple de code, ici on affiche les nombres paires
  32.   set /a n+=2
  33.   echo;!n!
  34.  
  35. )
  36.  
  37.  
  38.  
  39. pause>nul&exit
  40. :mon_deuxieme_Thread
  41.  
  42. rem Initialisation du thread, cette partie est exécutée une seule fois au lancement du thread
  43. rem on peut donc initialiser nos variables ici
  44. set n=1
  45.  
  46. rem Cette partie tournera en boucle, on est pas obligé de la mettre,
  47. rem cela dépend de ce que vous voulez faire ;)
  48. for /l %%i in () do (
  49.  
  50.   rem Votre CODE ICI
  51.  
  52.  
  53.   rem exemple de code, ici on affiche les nombres impaires
  54.   set /a n+=2
  55.   echo;!n!
  56.  
  57. )
  58.  
  59.  
  60. pause>nul&exit
  61. :Thread.New
  62.   set ThreadStack=!ThreadStack! "%~1"
  63. Exit /b
  64. :Thread.N
  65. for /l %%i in () do rem
  66. Exit /b
  67. :Thread.StartAll
  68.   set ThreadExec=
  69.   set ThreadNb=0
  70.   for %%i in (!ThreadStack!) do (
  71.     set "ThreadExec=!ThreadExec! __AND__ !ThreadCaller! %%~i __OUT__ CON"
  72.     set /a ThreadNb+=1
  73.   )
  74.   set ThreadExec=!ThreadExec:~9!
  75.   if "!ThreadNb!"=="1" set ThreadExec=!ThreadExec! __AND__ !ThreadCaller! Thread.N __OUT__ CON
  76.   set ThreadExec=!ThreadExec:__AND__=^|!
  77.   set ThreadExec=!ThreadExec:__OUT__=^>!
  78.   pushd %temp%
  79.   %ThreadExec%
  80.   popd
  81. Exit /b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement