I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
public class T { private static Random rng = new Random(); private int n; public T() { n = 0; } public void Run() { while(true) { Thread.Sleep(rng.Next(100)); n++; } } public int N { get { return n; } } }
class MainClass { public static void Main(string[] args) { T[] t = new T[4]; for(int i = 0; i < t.Length; i++) { t[i] = new T();
} for(int i = 0; i < t.Length; i++) { (new Thread(new ThreadStart(t[i].Run))).Start(); } while(true) { for(int i = 0; i < t.Length; i++) { Console.Write(" " + t[i].N); } Console.WriteLine(); Thread.Sleep(1000); } } }
I dokumentationen finde dette eksempel (hvor kommentarer og lidt kode under t.Start er fjernet):
public class ThreadExample { public static void ThreadProc() { for (int i = 0; i < 10; i++) { Console.WriteLine("ThreadProc: {0}", i); // Yield the rest of the time slice. Thread.Sleep(0); } }
public static void Main() { Thread t = new Thread(new ThreadStart(ThreadProc)); t.Start(); } }
Det er det samme jeg vil, jeg vil bare gerne have et parameter med til metoden.
Med den kedelige måde kalder du en constructor med en pointer til en metode.
Det er lidt avanceret fordi det ikke behøver være en statisk metode d.v.s. at der reelt kommer både adressen på et objekt og adressen på en funktion med over.
Men et ukendt antal argumenter ville nok være at svært at implementere.
Jeg vil ihvertfald være meget imponeret hvis det kan lade sig gøre.
public void Run ( ) { Console.WriteLine("Client: {0:}", client.RemoteEndPoint.ToString()); client.Send(buffer); client.Disconnect(false); } }
class Program { public static void Main ( string[] args ) { IPAddress hostIP = (Dns.Resolve(IPAddress.Any.ToString())).AddressList[0]; IPEndPoint endPoint = new IPEndPoint(hostIP, 12345); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind(endPoint); server.Listen(5);
while ( true ) { Socket client = server.Accept(); ClientHandler ch = new ClientHandler(client); Thread t = new Thread(new ThreadStart(ch.Run)); t.Start(); } } }
Men kunne det have noget med delegates at gøre (det er et område jeg endnu ikke har kigget på) ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.