Quantcast
Channel: Visual COBOL - Forum - Recent Threads
Viewing all articles
Browse latest Browse all 4356

RE: Thread

$
0
0

This was just a simple example of one way that you can use the .NET Threading syntax which happened to use a static method. If you need to use an instance method with threading you can do this as follows:

      $set ilusing"System"
      $set ilusing"System.Threading"
       program-id. Program1 as "testthreading.Program1".

       data division.
       working-storage section.
       01 any-key pic x.
       procedure division.
           declare thread1 as type Thread
           declare myobject as type ThreadWork = new ThreadWork
           declare threadDelegate as type ThreadStart = new ThreadStart(myobject::DoWork)
           set thread1 to new Thread(threadDelegate)
           invoke thread1::Start
           perform varying i as binary-long from 0 by 1 until i > 3
              display "In Main"
              invoke type Thread::Sleep(100)
           end-perform
           accept any-key
           goback.
           
       end program Program1.
       class-id ThreadWork.
       working-storage section.
       
       method-id DoWork public.
       procedure division.
           perform varying i as binary-long from 0 by 1 until i > 3
              display "Working Thread..."
              invoke type Thread::Sleep(100)
           end-perform
          
           goback.
       end method.
       
       end class.
      

If you do wish to use a static method that does file handling then the file itself should be defined as static or you will get errors.

Example:


       class-id ThreadWork.
          select optional test-file assign to "testfile.dat"
                           organization is line sequential
                           file status is file-status.
       file section.
       fd test-file static.
       01 test-record  pic x(20).
       working-storage section.
       01 file-status pic x(2) static.
       method-id DoWork static.
       procedure division.
           open extend test-file
           display "open = " file-status
           perform varying i as binary-long from 0 by 1 until i > 3
              display "Working Thread..."
              move i to test-record
              write test-record
              invoke type Thread::Sleep(100)
           end-perform
           close test-file
           goback.
       end method.
       
       end class.

Viewing all articles
Browse latest Browse all 4356

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>