using UnityEngine;
using UnityThreading;
public class UTHTest : MonoBehaviour {
TaskDistributor _distributor = new TaskDistributor("TestDistributor", 8, false);
int sortedArrays = 0;
bool isCalculating = false;
void Awake()
{
UnityThreadHelper.EnsureHelper();
isCalculating = true;
//20 tasks
for (int t = 0; t < 20; t++)
{
//add them
_distributor.Dispatch(() =>
{
//work
//******************************
int[][] arrays = new int[random.Next(500, 1000)][];
for (int i = 0; i < arrays.Length; ++i)
{
arrays[i] = new int[random.Next(500, 10000)];
for (int k = 0; k < arrays[i].Length; ++k)
arrays[i][k] = random.Next(10000);
}
for (int i = 0; i < arrays.Length; ++i)
{
var index = i;
System.
Threading.
Interlocked.
Increment(ref sortedArrays
);
if (sortedArrays == arrays.Length)
{
isCalculating = false;
sortedArrays = 0;
}
}
//System.Threading.Thread.Sleep(2000);
//********************************
//when this task is done, update the GUI with our results
UnityThreadHelper.Dispatcher.Dispatch(() =>
{
GameObject obj = new GameObject(name);
}).Wait();
});
}
}
void OnGUI()
{
if (GUILayout.
Button(_distributor.
TaskCount.
ToString())) Run();
}
void OnDestroy()
{
_distributor.Dispose();
}
void Run()
{
_distributor.Start();
}
}
dXNpbmcgVW5pdHlFbmdpbmU7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsKdXNpbmcgVW5pdHlUaHJlYWRpbmc7CgpwdWJsaWMgY2xhc3MgVVRIVGVzdCA6IE1vbm9CZWhhdmlvdXIgewoKCVRhc2tEaXN0cmlidXRvciBfZGlzdHJpYnV0b3IgPSBuZXcgVGFza0Rpc3RyaWJ1dG9yKCJUZXN0RGlzdHJpYnV0b3IiLCA4LCBmYWxzZSk7CglTeXN0ZW0uUmFuZG9tIHJhbmRvbSA9IG5ldyBTeXN0ZW0uUmFuZG9tKCk7CglpbnQgc29ydGVkQXJyYXlzID0gMDsKCWJvb2wgaXNDYWxjdWxhdGluZyA9IGZhbHNlOwoJCgl2b2lkIEF3YWtlKCkKCXsKCVVuaXR5VGhyZWFkSGVscGVyLkVuc3VyZUhlbHBlcigpOwoJCglpc0NhbGN1bGF0aW5nID0gdHJ1ZTsKCQkvLzIwIHRhc2tzCgogICAgICAgICAgICBmb3IgKGludCB0ID0gMDsgdCA8IDIwOyB0KyspCgogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgLy9hZGQgdGhlbQoKICAgICAgICAgICAgICAgIF9kaXN0cmlidXRvci5EaXNwYXRjaCgoKSA9PgoKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgCgogCgogICAgICAgICAgICAgICAgICAgIC8vd29yawoKICAgICAgICAgICAgICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgICAgICAgICAgICAgICAgICBpbnRbXVtdIGFycmF5cyA9IG5ldyBpbnRbcmFuZG9tLk5leHQoNTAwLCAxMDAwKV1bXTsKCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheXMuTGVuZ3RoOyArK2kpCgogICAgICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5c1tpXSA9IG5ldyBpbnRbcmFuZG9tLk5leHQoNTAwLCAxMDAwMCldOwoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBhcnJheXNbaV0uTGVuZ3RoOyArK2spCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlzW2ldW2tdID0gcmFuZG9tLk5leHQoMTAwMDApOwoKICAgICAgICAgICAgICAgICAgICB9CgogCgogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXlzLkxlbmd0aDsgKytpKQoKICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBpOwoKIAoKIAoKICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLkFycmF5LlNvcnQoYXJyYXlzW2luZGV4XSk7CgogICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uVGhyZWFkaW5nLkludGVybG9ja2VkLkluY3JlbWVudChyZWYgc29ydGVkQXJyYXlzKTsKCgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc29ydGVkQXJyYXlzID09IGFycmF5cy5MZW5ndGgpCgogICAgICAgICAgICAgICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDYWxjdWxhdGluZyA9IGZhbHNlOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZEFycmF5cyA9IDA7CgogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KCi8vU3lzdGVtLlRocmVhZGluZy5UaHJlYWQuU2xlZXAoMjAwMCk7CiAgICAgICAgICAgICAgICAgICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCQkJCQlzdHJpbmcgbmFtZSA9IHN0cmluZy5Gb3JtYXQoIlRhc2sgezB9IGNvbXBsZXRlIiwgVGFzay5DdXJyZW50Lk5hbWUpOwoKICAgICAgICAgICAgICAgICAgICAvL3doZW4gdGhpcyB0YXNrIGlzIGRvbmUsIHVwZGF0ZSB0aGUgR1VJIHdpdGggb3VyIHJlc3VsdHMKCQkJCQlVbml0eVRocmVhZEhlbHBlci5EaXNwYXRjaGVyLkRpc3BhdGNoKCgpID0+CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBHYW1lT2JqZWN0IG9iaiA9IG5ldyBHYW1lT2JqZWN0KG5hbWUpOwoKICAgICAgICAgICAgICAgICAgICB9KS5XYWl0KCk7CgogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9Cgl9CgkKCXZvaWQgT25HVUkoKQoJewoJCWlmIChHVUlMYXlvdXQuQnV0dG9uKF9kaXN0cmlidXRvci5UYXNrQ291bnQuVG9TdHJpbmcoKSkpCgkJCVJ1bigpOwoJfQoJCgl2b2lkIE9uRGVzdHJveSgpCgl7CgkJX2Rpc3RyaWJ1dG9yLkRpc3Bvc2UoKTsKCX0KCQoJdm9pZCBSdW4oKQoJewoJCgogCgogICAgICAgICAgICBfZGlzdHJpYnV0b3IuU3RhcnQoKTsKCX0KfQo=
Main.java:1: error: class, interface, or enum expected
using UnityEngine;
^
Main.java:2: error: class, interface, or enum expected
using System.Collections;
^
Main.java:3: error: class, interface, or enum expected
using UnityThreading;
^
Main.java:5: error: '{' expected
public class UTHTest : MonoBehaviour {
^
Main.java:25: error: illegal start of expression
_distributor.Dispatch(() =>
^
Main.java:25: error: illegal start of expression
_distributor.Dispatch(() =>
^
Main.java:27: error: illegal start of expression
{
^
Main.java:27: error: ';' expected
{
^
Main.java:37: error: illegal start of expression
int[][] arrays = new int[random.Next(500, 1000)][];
^
Main.java:37: error: ';' expected
int[][] arrays = new int[random.Next(500, 1000)][];
^
Main.java:37: error: illegal start of expression
int[][] arrays = new int[random.Next(500, 1000)][];
^
Main.java:37: error: ';' expected
int[][] arrays = new int[random.Next(500, 1000)][];
^
Main.java:65: error: ')' expected
System.Threading.Interlocked.Increment(ref sortedArrays);
^
Main.java:65: error: illegal start of expression
System.Threading.Interlocked.Increment(ref sortedArrays);
^
Main.java:86: error: illegal start of expression
UnityThreadHelper.Dispatcher.Dispatch(() =>
^
Main.java:86: error: illegal start of expression
UnityThreadHelper.Dispatcher.Dispatch(() =>
^
Main.java:87: error: illegal start of expression
{
^
Main.java:87: error: ';' expected
{
^
Main.java:90: error: illegal start of expression
}).Wait();
^
Main.java:90: error: illegal start of expression
}).Wait();
^
Main.java:90: error: ';' expected
}).Wait();
^
Main.java:92: error: illegal start of type
});
^
Main.java:95: error: class, interface, or enum expected
}
^
Main.java:101: error: class, interface, or enum expected
}
^
Main.java:106: error: class, interface, or enum expected
}
^
Main.java:115: error: class, interface, or enum expected
}
^
26 errors