AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Konsolenprogramm und Multithreading

Ein Thema von Neutral General · begonnen am 15. Feb 2007 · letzter Beitrag vom 15. Feb 2007
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Konsolenprogramm und Multithreading

  Alt 15. Feb 2007, 15:51
...oder so...^^

NajaHab das mit meinem Server-Client gedöns halbwegs zum laufen gebracht.. Nur mein Problem ist halt das mein Server nix macht solange readln aktiv ist... readln friert das ganze Programm ein.. Bisher hab ich es gemacht das man eben nichts eingeben kann im Server aber das soll nicht so sein... Kann ich nicht den Server oder so in nen anderen Thread verlagern und von da aus mit writeln Sachen schreiben aber trotzdem mit readln in der Hauptanwendung benutzen ?

Ich hoffe ihr wisst was ich meine *g*

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
morp2

Registriert seit: 1. Jan 2007
30 Beiträge
 
#2

Re: Konsolenprogramm und Multithreading

  Alt 15. Feb 2007, 15:53
Zitat von Neutral General:
Kann ich nicht den Server oder so in nen anderen Thread verlagern und von da aus mit writeln Sachen schreiben aber trotzdem mit readln in der Hauptanwendung benutzen ?
Da spricht nichts dagegen.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Konsolenprogramm und Multithreading

  Alt 15. Feb 2007, 15:56
Ok kann mir das jemand bitte erklären
Ich hab mich noch nie wirklich mit Threads beschäftigt und wenn dann hab ich da nie wirklich durchgeblickt.. Also ich habs im Moment so:

Delphi-Quellcode:
type
  TMyServerThread = class(TThread)
  protected
    procedure Execute; override;
  public
    Server: TMyServerSocket;
    constructor Create(CreateSuspended: Boolean);
  end;

{ TMyServerThread }

constructor TMyServerThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  Server := TMyServerSocket.Create;
  Server.Port := 1235;
  Server.Initialize;
end;

procedure TMyServerThread.Execute;
begin
  while not Terminated do
   Application.ProcessMessages;
end;

var ST: TMyServerThread;

begin
 ST := TMyServerThread.Create(true);
 ST.Execute;
 readln;
 ST.Suspend;
 ST.Terminate;
 St.Free;
end.
So läuft der Server zwar aber mit readln is da nix.. Läuft genauso wie ohne Thread

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
morp2

Registriert seit: 1. Jan 2007
30 Beiträge
 
#4

Re: Konsolenprogramm und Multithreading

  Alt 15. Feb 2007, 16:05
Einfaches BSP:

Delphi-Quellcode:
program thread;
{$APPTYPE CONSOLE}

uses Windows;

function UnserThread(zahl: Pointer): LongInt; stdcall;
begin
  Sleep(2000);
  WriteLn('UnserThread ist fertig');
  Result:=0;
end;

var
  ThreadID: DWORD; //Thread-ID
  ThreadHandle: THandle; //Rückgabewert von CreateThread

begin
  WriteLn;
  WriteLn('Unser Thread-Testprogramm ist gestartet.');
  WriteLn('Nun erzeugen wir den neuen Thread!');

  ThreadHandle:=CreateThread(nil, 0, TFNThreadStartRoutine(@UnserThread),
    nil, 0, ThreadID);

  //wenn der Thread erfolgreich gestartet wurde (ThreadHandle<>0), können
  //wir ThreadHandle wieder freigeben:
  if ThreadHandle<>0 then CloseHandle(ThreadHandle);

  WriteLn('Das Hauptprogramm ist nun am Ende angekommen.');

  //Automatisches Schließen der Konsole verhindern:
  ReadLn;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Konsolenprogramm und Multithreading

  Alt 15. Feb 2007, 16:12
uiiiiiiiiiiiiiiiiiiii

Sooo muss das gehn
Danke..
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz