, . ( , Java -ize )
, "" - , , , , .
, , , , . .
private int taskStackPointer;
private final static int MAX_THREADS = 5;
, . :
[MethodImpl(MethodImplOptions.Synchronized)]
public task getNextTask()
{
if( taskStackPointer < tasks.Count )
return tasks[taskStackPointer++];
else
return null;
}
[taskStackPointer ++]. code, , " ". , .
:
public interface TaskDispatcher
{
[MethodImpl(MethodImplOptions.Synchronized)] public task getNextTask();
}
ReportGenerator , :
public ReportGenerator( TaskDispatcher td, int idCode )
{
...
}
ReportGenerator, , td.getNextTask(), , , NULL.
, - : ( , )
taskStackPointer = 0;
for (int i = 0; i < MAX_THREADS; i++)
{
ReportGenerator worker = new ReportGenerator(this,id);
worker.Go();
}
, .
( , "[MethodImpl (MethodImplOptions.Synchronized)]" ... Java, #)