Results 1 to 14 of 14

Thread: SOLVED: Is simulated multithreading the way to go (for what i need to do)?

Hybrid View

  1. #1
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: SOLVED: Is simulated multithreading the way to go (for what i need to do)?

    Havent tested it but mostly referring to your gui if you have events that should fire like mouseovers which dont count towards the queue that the api looks at.
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  2. #2
    Fanatic Member schoolbusdriver's Avatar
    Join Date
    Jan 2006
    Location
    O'er yonder
    Posts
    1,020

    Re: SOLVED: Is simulated multithreading the way to go (for what i need to do)?

    I know it's marked as resolved, but just in case someone is interested in the multithreading option - a little demo program.

    As to which is faster, MultiThreading or DoEvents, I'll leave others to argue. The obvious advantage of MultiThreading comes in when you have to perform other tasks within the same app. Make an executable of the code below and run it. Click on "Start MultiThread" and move the form around, scroll the textbox etc. The "AddTextMultiThread" function continues without even a pause. Click on "Stop MultiThread". Try the same with "Start/Stop DoEvents". Spot the difference.

    'Original code at:- http://www.free2code.net/plugins/art...read.php?id=94

    VB Code:
    1. Option Explicit
    2. 'Form level code.
    3.  
    4. 'MultiThread versus DoEvents.
    5.  
    6. 'Add a textbox and 4 command buttons to a form.
    7.  
    8. Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, _
    9.    ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, _
    10.    ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
    11.  
    12. Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, _
    13.    ByVal dwExitCode As Long) As Long
    14.  
    15. Private Sub Command1_Click()
    16.    id = CreateThread(ByVal 0&, ByVal 0&, AddressOf AddTextMultiThread, ByVal 0&, 0, id)
    17. End Sub
    18.  
    19. Private Sub Command2_Click()
    20.    Call TerminateThread(id, ByVal 0&)
    21. End Sub
    22.  
    23. Private Sub Command3_Click()
    24.    StopDo = True
    25.    AddTextDoEvents
    26. End Sub
    27.  
    28. Private Sub Command4_Click()
    29.    StopDo = False
    30. End Sub
    31.  
    32. Private Sub Form_Load()
    33.    Me.Height = 4545
    34.    Me.Width = 8925
    35.    
    36.    Text1.Move 45, 45, 8700, 3525
    37.    
    38.    Command1.Move 45, 3690, 1635, 375
    39.    Command1.Caption = "Start MultiThread"
    40.  
    41.    Command2.Move 1845, 3690, 1635, 375
    42.    Command2.Caption = "Stop MultiThread"
    43.  
    44.    Command3.Move 5310, 3690, 1635, 375
    45.    Command3.Caption = "Start DoEvents"
    46.  
    47.    Command4.Move 7110, 3690, 1635, 375
    48.    Command4.Caption = "Stop DoEvents"
    49. End Sub
    VB Code:
    1. 'Module level code.
    2. Option Explicit
    3.  
    4. Public id As Long
    5. Public StopDo As Boolean
    6.  
    7. Public Function AddTextMultiThread()
    8.    Do
    9.       Form1.Text1.SelText = "Adding to Text1 - "
    10.    Loop
    11. End Function
    12.  
    13. Public Function AddTextDoEvents()
    14.    StopDo = True
    15.    Do While StopDo = True
    16.       Form1.Text1.SelText = "Adding to Text1 - "
    17.       DoEvents
    18.    Loop
    19. End Function

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width