Laden...

Visual Studio 2008 unter XP mit Net Framework 4.0

Erstellt von -Dirk- vor 6 Jahren Letzter Beitrag vor 6 Jahren 4.336 Views
Thema geschlossen
-
-Dirk- Themenstarter:in
6 Beiträge seit 2017
vor 6 Jahren
Visual Studio 2008 unter XP mit Net Framework 4.0

Hallo,

ich hoffe das ich in diesem Unterforum richtig bin bei den Grundlagen von C#. Ein anderes Unterforum wo diese Frage paßt habe ich nicht gefunden. Notfalls bitte verschieben.

Also zu der Frage:

Ich bin dabei C# zu lernen. Habe über ebay für sehr sehr kleines Geld Visual Studio 2008 in der Pro Version bekommen.
Zusätzlich habe ich mir einen alten Rechner genommen, um den alleine zum programmieren zu verwenden und da XP installiert (Win7 oder höher dafür reicht die Hardware kaum aus). WinXp läuft sehr stabil und Visual Studio 2008 habe ich installiert - alles läuft wie ein einziges Zahnrad, bis auf....

In meinen Lehrbüchern über C# steht da immer:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

und genau um diese letzte Zeile geht es:

using System.Threading.Tasks;

sobald ich die in Visual Studio 2008 eingab, gab es Fehler beim starten. Ohne diese Zeile lief es dann.

Das was ich nach reichlich googeln gefunden habe, ist die Aussage das

System.Threading.Tasks;

nur ab Net Framework 4.0 funktioniert.

Ich habe Net Framework 4.0 bei XP installiert - dummerweise zeigt mit Visual Studio 2008 bei der c# neuen Projektauswahl nur Net Framework 3.5 an

In diesem Forumsbeitrag:
https://stackoverflow.com/questions/19783983/system-threading-task-is-not-working
fand ich im Posting 3 das man_ Microsoft Reactive Extensions_ benutzen soll.
"you can do this by using Microsoft Reactive Extensions.
https://msdn.microsoft.com/library/hh242985.aspx

ein Link tiefer steht das man die Package Manager Console benutzen soll um die notwenige .dll nachinstallieren soll:

Write Install-Package System.Threading.dll in console and press ENTER

Nur ich habe diese Package Manager Console Funktion nicht bei Visual Studio 2008, zumindest finde ich sie nicht X(

Die Hilfe zum Package Manager Console fand ich hier:
https://docs.microsoft.com/de-de/nuget/tools/package-manager-console

ab hier versteh ich aber nichts mehr so richtig was dort steht 🤔

Den download des nuget fand ich hier,
https://dist.nuget.org/index.html
gibts aber für Visual Studio 2008 nicht als fertiges Packages. Also habe ich die Consolen Version dort runtergeladen.
Aber wenn ich das starte steht da:

Just-In-Time-Debugger von Visual Studio
mögliche Debugger:
Neue Instanz von Visual Studio 2008
Möchten Sie den Debugger verwenden?
ja/nein

Bei Ja startet kommt dann ein Fehler:> Fehlermeldung:

Unbehandelte Ausnahme in nuget.exe
Unterbrechen/Weiter

Er installiert also keine .dll nach, startet auch keine Console wo ich was eingeben kann.
Kann auch sein, dass ich mich hier völlig verstrickt habe und ganz falsch bin X(

Meine Frage an euch lautet nun, hat einer einen heißen Tipp wie ich das nachinstallieren kann damit ich diese Zeile:

using System.Threading.Tasks;

benutzen kann.

Eine weitere Frage wäre zu der MSDN Library:
https://msdn.microsoft.com/de-de/library/system.threading.tasks(v=vs.110).aspx

ich verstehe nichts was da steht, wofür man diese System.Threading.Tasks überhaupt braucht 🤔

Wäre schön wenn ihr mir helfen könntet

UNIX ist das Betriebssystem der Zukunft. Und das schon seit 48 Jahren.

J
641 Beiträge seit 2007
vor 6 Jahren

Vs2008 ist jetzt 9 Jahre alt... die meisten nutzen das nur noch weil sie es müssen um WinCE Geräte zu programmieren.

Klar, unter Xp kannst du kein 2013 und neuer installieren... hast den keinen Win 10 Rechner den du nutzen kannst, mit VS2017 Community?

cSharp Projekte : https://github.com/jogibear9988

-
-Dirk- Themenstarter:in
6 Beiträge seit 2017
vor 6 Jahren

nein ich habe kein Windows 8, 10 oder 23 - möchte es auch wirklich nicht haben. Windows 7 ist schon ein übel, da will ich nicht noch höher. WinXP läuft gut, tut was es soll, wann es das soll.
Laß und aber bitte keine Grundsatzdiskussion anfangen über Windows, es geht mir alleine um diese blöde Zeile

 using System.Threading.Tasks;

die ja Net Framework 4.0 voraussetzt. Und genau diese Zeile möchte ich bei VS 2008 benutzen (nein VS 2010 habe ich leider nicht, da wird Net Framework 4.0 unterstützt unter XP. Wer einen link kennt zu der deutschen 30 Tage Testversion von Microsoft von VS 2010 - bitte posten).

Es scheint ja möglich zu sein, gewisse .dll nachzuinstallieren um diese Zeile (und vermutlich noch einiges mehr von net Framework 4.0) nutzen zu können - darum geht es mir.

UNIX ist das Betriebssystem der Zukunft. Und das schon seit 48 Jahren.

D
985 Beiträge seit 2014
vor 6 Jahren

Ich kenne einen Link zur Visual Studio 2017 Community und das läuft auch mit Windows 7 SP1 (mit neuesten Windows Updates).

Nimm einfach das, und bitte keine Grundsatzdiskussion darüber anfangen.

-
-Dirk- Themenstarter:in
6 Beiträge seit 2017
vor 6 Jahren

Hi,

die Community Versionen 2015 und 2017 sind alle noch bei Microsoft verfügbar.
die Express Versionen von 2010 bis ebenfalls.

die VS Pro Version 2008 gibts immer noch bei Microsoft als 30 Tage Trial zum download.
die VS Pro Version 2010 Trial 30 Tage aber nur noch in englisch, zumindest habe ich deutsch nicht gefunden.

2008 und 2010 laufen beide unter XP, die 2013 läuft nicht mehr unter XP
2010 unterstützt net 4.0.
2008 unterstützt regulär nur Net 3.5 (oben im ersten Beitrag angeblich durch Update das ich aber nicht verstehe auf Net 4.0 erweiterbar).

bei mir bleibt nur die Option 2008 erweitern auf Net 4.0 oder 2010, aber die englische Version 2010 möcht ich nicht wirklich.

ich will keine Cloud-Anwendungen schreiben, keine Microsoft Handy Apps oder sonstwas für Windows 10.

Im Grunde dürfte mir 2008 zum lernen locker ausreichen. Das Problem ist halt using System.Threading.Tasks;
Gut ich kann die zeile weglassen, zum lernen brauchst man vermutlich eh nicht. Erklären kann mir ja keiner wofür ich die brauche und die MS Seite wo da was du zu stehet, da versteh ich den Sinn von parallelen Schleifen nicht wirklich..
Aber einige Quellcode-Beispiele, die ich nicht unbedingt abtippen möchten, nutzen System.Threading.Tasks; und die will ich zumindest mal in VS laufen lassen - kann ich aber nicht wegen System.Threading.Tasks;
So umschreiben das System.Threading per Einzelzeile zu nutzen, da habe ich keine Ahnung von...

es ist zum Mäusemelken...... X(

UNIX ist das Betriebssystem der Zukunft. Und das schon seit 48 Jahren.

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

nun - wenn du denn wirklich an 2008 gebunden bist - sei's drum.

Bei System.Threading.Tasks geht es um eine Art Abstraktionsschicht für's Multithreading.
(Sprich: Deinen Computer mehrere Sachen auf einmal machen lassen für dein Programm)

Ein Task ist eine Aufgabe, die zumeist asynchron über einen anderen Thread läuft und so den Hauptthread deiner Anwendung nicht blockiert. (Das macht man z.B., damit die Anwendung längere Operationen ausführen kann - die Oberfläche aber dennoch weiter funktioniert - ohne würde es z.B. vorkommen, dass deine Oberfläche schlicht einfriert)

Tasks machen im Endeffekt das Arbeiten mit asynchronen Programmabläufen um ein Vielfaches einfacher - du wirst es deshalb nicht einfach haben asynchron zu programmieren.
Es geht allerdings auch durchaus auch ohne diese Vereinfachung. Findest sicher im Web noch hunderte Artikel wie das sauber mit eigens erstellten Threads funktioniert.

Unabhängig davon:
Wenn du programmieren lernen möchtest - solltest du dir Gedanken darüber machen für wen du später programmieren möchtest. C# hat sich seit 2008 doch stark weiter entwickelt - all die "modernen" Sachen gehören längst zum Standard - und wir reden hier durchaus nicht nur von Sachen von Tasks. Des Weiteren gilt Windows XP immer noch als Sicherheitsrisiko. Obendrauf kommt: Wenn du mit .NET 3.5 arbeitest - machst du es Usern mit Windows 10 nicht leichter deine Programme zu nutzen 😉 Du wirst dir halt beim Lernen keinen Gefallen tun - weil all die Google-Resultate schon neue Features verwenden die du nicht kennst und auch nicht einfach abschreiben kannst - sondern du diese oft auf .NET 3.5 abwandeln musst.

Aber: Deine Entscheidung.

LG

463 Beiträge seit 2009
vor 6 Jahren

Manche machen sich das Leben selbst unnötig schwer... Wenn du .net 4.x lernen möchtest brauchst du die Software dazu, welche .net V4.x unterstützt. Ist eigentlich ganz einfach - als Alternative könntes du mal SharpDevelop testen, sofern sich dies noch unter XP installieren lässt. Dort solltest du das Framework V4.x auf jeden Fall verwenden können.

3.003 Beiträge seit 2006
vor 6 Jahren

Im Grunde dürfte mir 2008 zum lernen locker ausreichen.

Natürlich. Und zwar lernst du dann etwas, das vor fast genau 10 Jahren aktuell war. Das ist in der IT ein sehr, sehr langer Zeitraum.

Konsequenterweise solltest du deine Lehrbücher wegwerfen und dir welche von 2007 schießen, denn die passen dann auch zu deiner Entwicklungsumgebung. Du hast dir einen Ford T gekauft und beschwerst dich, das keins der Handbücher erwähnt, wie man die Anlasser-Handkurbel bedient.

Es gibt gute Gründe, noch VS 2008 zu verwenden. Weil man's billig auf Ebay bekommen hat, ist keiner, zumal dir die Community Editions bekannt sind.

To add insult to injury: Du verwendest ein Betriebssystem, das offiziell seit drei Jahren (!!!) nicht mehr supportet wird. Nostalgie ist ja schön und gut, aber das überschreitet auch im privaten Bereich die Grenze zur Fahrlässigkeit.

Kopfschüttelnd,

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

P
1.090 Beiträge seit 2011
vor 6 Jahren

Ein Lehrbuch für 2008 kannst du bei Ebay finden.

Wie sieht es denn aus Linux zu nutzen und .Net Core?

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

3.170 Beiträge seit 2006
vor 6 Jahren

Hallo,

2008 unterstützt regulär nur Net 3.5 (oben im ersten Beitrag angeblich durch Update das ich aber nicht verstehe auf Net 4.0 erweiterbar).

Da hast Du was falsch verstanden.
VS 2008 unterstützt kein .NET 4.0. Punkt.

Wenn Du die Reactive Extensions für 3.5 installierst, bekommst Du einige Features, die erst mit .NET 4 kamen, für 3.5 nachgeliefert - mit einer Erweiterung auf .NET 4 hat das recht wenig zu tun.

Da wirst früher oder später außer System.Threading.Tasks sicher noch auf einige andere Dinge stoßen, die in Deinem 2008 nicht funktionieren, wenn dein Lehrmaterial und Beispiele auf .NET 4 basieren.

Also entweder, wie LaTino schreibt, dementsprechenden mit älterem Material/Beispielen arbeiten, oder eben eine neuere VS Version benutzen (was die deutlich sinnvollere Lösung wäre). Andernfalls sind weitere Probleme schon vorgezeichnet.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

T
2.219 Beiträge seit 2008
vor 6 Jahren

@Palin
Da er .Net 4,0 verwenden will, entfällt auch .Net Core sowie Mono in einer aktuellen Version.
Mein letzter Test vor ein paar Tagen mit Mono hat gezeigt, dass dort alte .Net Versionen bereits gedroppt wurden.
Dazu zählen 2.0, 3.5 sowie 4.0.
Entsprechend kann er nur das tote Pferd mit WindowsXP + VS 2008 reiten.
Oder alternativ eine Linux Distribution mit Mono vor 4.0 nehmen.
Aktuell dürfte Debian Jessie noch eine ältere Mono Version nutzen.

Mono Release Notes:
http://www.mono-project.com/docs/about-mono/releases/4.0.0/

Meine Empfehlung ist auch, neue Version von Windows(10), .Net 4.7 sowie VS 2017 Community Edition.
Wenn sich der OP weigert, kann er keine Hilfe erwarten, da keiner von uns irgendwelche uralt Software supporten kann/will.
XP ist seit letztem Jahr offiziell tot, hier noch ein System am Netzbetreiben ist pure Fahrlässigkeit.
.Net Versionen vor 4.5 braucht keiner mehr anfassen, wenn er keine alten Projekte pflegen muss.

Auch ich verwendet .Net 2.0 nur noch wegen einem ca. 7-8 Jahre alten Projekt in unserer Firma, was ich aber auch wegen uralter Abhängigkeiten nicht einfach updaten kann.
Neue Projekte werden bei uns nur mit aktueller .Net Version angelegt.
Zukünftig dann wohl mit aktueller .Net Platform Standard Version.

Alles andere, vorallem neue Projekte auf toten .Net versionen oder Systemen aufbauen, halte ich schlicht für Fahrlässig und wird auch nicht unterstützt.
Gerade als Einsteiger würde ich mit sowas gar nicht erst anfangen.

Ich hoffe der OP nimmt sich diesen Ratschlag zu Herzen und steigt auf ein aktuelles System um.
Wenn dir Windows 10 nicht zu sagt, kannst du auch unter Linux (Debian 9) mit aktuellem Mono bis .Net 4.6.2 arbeiten.
Ggf. gibt es später noch in den Backports eine aktuellere Version, kann man dann im Idealfall einfach aus den Backports nachinstallieren.
Mit Mono-Develop kann man auch ganz gut arbeiten, auch wenn VS hier definitiv diese bessere Wahl sein dürfte.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
368 Beiträge seit 2006
vor 6 Jahren

Zu der groben Fahrlässigkeit von wg. XP und VS 2008 wurde genug geschrieben.
Am Beispiel der Openbooks kann demonstriert werden, was sich z.B. in punkto parallele Programmierung seit 2008 geändert hat: VC 2008 - Kapitel Multithreading, VC 2010 - Multithreading (hier werden schon Unterschiede zu voriger Hardware/Software thematisiert) , VC 2012 - Multithreading

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

-
-Dirk- Themenstarter:in
6 Beiträge seit 2017
vor 6 Jahren

Das man hier gleich in die (XP wird nicht mehr von MS supportet und damit auch hier nicht unterstützt) Ecke drängt, ist nicht wirklich nett.

Vielleicht kurz, ich beschäftige mich seit Jahren mit C programmieren und ASM, Pic programmieren, sowas in der Richtung. Ich habe Programme die kommen aus Zeiten von Win98, laufen aber erstklassig unter XP. Win7 hat einen emulierten Dos-Mode (und ist häßlich in der Oberfläche geworden), da läuft von diesen Programmen nichts. Win8-10 ist völlig neu programmiert worde, wie ich finde deutlich schlechter, da läuft selbstverstäöndlich auch nichts. So habe ich von Haus aus einen Rechner mit moderner Hardware wo modernes Office usw. läuft, einige Berufssachen usw. Und ein XP Rechner wo halt Zeug läuft zur Pic Programmierung, diverse C und ASM Compiler.

Da ich halt nur Console Programmieren kann und keine Windows-Programme mit Windows-Fenster, naja so kommt man zu C#. Und so bekam halt C# mit VS 2008 einen eigenen (alten) Rechner.

Ich will bestimmt nicht beruflich in C# einsteigen, an C# Proketen teilnehmen ect. Höchstens mal das ein oder andere Programm mit Winder-Fenster zum klicken in C# basteln, und zwar nur für mich selbst.

Windows 8-10 macht also keinen Sinn für mich, nicht mal ansatzweise. Es ist schön das Microsoft ständig neue Versionen von Microsoft rausbringt, wegen mir ins App Geschäft, Cloudgeschäft ect einsteigt, mich interessiert es aber herzlich wenig.

WinCE

Mir ist vor ein paar Wochen ein Autoradio, naja falls man zu sowas noch Autoradio sagen kann, halt mit Bildschirm, TV, GPS, Internet usw. über den Weg gelaufen das lief mit WinCe5.0.

Ich habe einige Bekannte die im oberen Managetment tätig sind, ständig weltweit beruflich unterwegs und die haben alte Palm Handheld Geräte. Ich würde sagen so um 15 Jahre alt die Dinger. Trotz aktuellen iPhones, iPads usw. nutzen die noch ihre Palms. Deren Aussage: Mac, iPhone usw. sind sehr gut, hilfreich, aber Termine, Organizer, Planer dafür nur das Palm. Da ist nichts online, da geht nichts raus, nichts zu einer Cloud und absolut Virensicher. Die Palm haben hoch-Verschlüsselungssoftware als Software oben drauf das selbst ein Verlust nicht schaden kann.

XP ist seit letztem Jahr offiziell tot, hier noch ein System am Netzbetreiben ist pure Fahrlässigkeit
..Du verwendest ein Betriebssystem, das offiziell seit drei Jahren (!!!) nicht mehr supportet wird. Nostalgie ist ja schön

Wenn ihr das meinst wird es bestimmt so sein. Bleibt in dem Glauben, ist ja ok. Abgesehen davon unterstützt Microsoft XP sehr wohl noch, die eingebettete Version XP wird noch ständig mit Updates versorgt. Aber wer brauch die Updates? Ich nicht, es läuft alles. Dont touch the running system...

Aber lassen wir das, ich möchte euch eure sehr einseitige Sicht nicht nehmen:) Darum gehts hier in diesem Faden aber auch nicht.

Taipi88
Bei System.Threading.Tasks geht es um eine Art Abstraktionsschicht für's Multithreading.
(Sprich: Deinen Computer mehrere Sachen auf einmal machen lassen für dein Programm)

Ein Task ist eine Aufgabe, die zumeist asynchron über einen anderen Thread läuft und so den Hauptthread deiner Anwendung nicht blockiert. (Das macht man z.B., damit die Anwendung längere Operationen ausführen kann - die Oberfläche aber dennoch weiter funktioniert - ohne würde es z.B. vorkommen, dass deine Oberfläche schlicht einfriert)

Tasks machen im Endeffekt das Arbeiten mit asynchronen Programmabläufen um ein Vielfaches einfacher - du wirst es deshalb nicht einfach haben asynchron zu programmieren.

Danke Tapi88 für deine Antwort. Jetzt verstehe ich auch was die auf der MS Hilfsseite mit Parallelen Schleifen meinen. Ich war schon am grübeln ob die damit meinen das man damit Mehrkernprozessoren einzeln ansteuern und Programme asynchron ablaufen kann...
Es geht also um diese Windowsoberflächen dabei. Das bedeutet schon mal für Consolen C# keine Probleme - gut. Und mit diesem Satz: über einen anderen Thread läuft und so den Hauptthread deiner Anwendung nicht blockiert. Meinst du damit das beim starten von Windows-Fenster Anwenden da im Grunde 2 Programme ablaufen, einmal die Console im Hintergrund und das Fenster eigenständig?
Und mit "schlicht einfriert" meinst du CPU überlastet?

MarsStein:
Da hast Du was falsch verstanden.
VS 2008 unterstützt kein .NET 4.0. Punkt.

Wenn Du die Reactive Extensions für 3.5 installierst, bekommst Du einige Features, die erst mit .NET 4 kamen, für 3.5 nachgeliefert - mit einer Erweiterung auf .NET 4 hat das recht wenig zu tun.

Danke MarsStein für deine Antwort. Diese Reactive Extensions für 3.5 kennst du da ein download-link? Und diese nuget console (die ich nicht zum starten bekomme), brauch ich die dann überhaupt?

UNIX ist das Betriebssystem der Zukunft. Und das schon seit 48 Jahren.

D
985 Beiträge seit 2014
vor 6 Jahren

Wenn du einen modernen Computer hast, wozu dann noch einen "alten" mit XP und VS2008 zum Entwickeln?

In der heutigen Zeit virtualisiert man so etwas mit VMware, VirtualBox, ...

Da kannst du dir dann eine virtuelle Umgebung zum Entwickeln aufsetzen (Empfehlung: Win10, VS2017). Auf welchen Systemen die erzeugten Programme dann laufen, hängt dann nur vom verwendeten .net Framework ab und da geht bei VS2017 von .net 2.0 bis 4.7 alles.

Du musst dich also gar nicht von deinen (warum auch immer) geliebten Systemen trennen und kommst mit Win10 nur beim Entwickeln ein wenig in Kontakt. Somit sollte die "Kontamination" im Rahmen bleiben.

3.003 Beiträge seit 2006
vor 6 Jahren

Wow, also wirklich wow. Die Nonchalance, mit der du fundiertes und angebrachte Hinweise zur Seite wischst, ist schon eine Liga für sich. Vielleicht zur Einordnung: ich glaube du bist hier im Thread der einzige, der das Programmieren als Hobby betreibt. Ist schön zu sehen, dass du dennoch überzeugt bist, keine Hinweise beachten zu müssen. Dunning-Kruger, nehme ich an.

Die Lösung deiner Situation ist schon mehrfach erwähnt worden: nimm einfach Lehrbücher, die zu dem passen, was du lernst. Gebrauchte Ausgaben zu VS 2008 und .net 3.5 gibt's für einen Appel und ein Ei.

Es geht also um diese Windowsoberflächen dabei. Das bedeutet schon mal für Consolen C# keine Probleme - gut. Und mit diesem Satz: über einen anderen Thread läuft und so den Hauptthread deiner Anwendung nicht blockiert. Meinst du damit das beim starten von Windows-Fenster Anwenden da im Grunde 2 Programme ablaufen, einmal die Console im Hintergrund und das Fenster eigenständig?
Und mit "schlicht einfriert" meinst du CPU überlastet?

Du verstehst da etwas, was Taipi88 nicht geschrieben hat. Es geht bei Tasks nicht um eine Oberfläche. Das ist nur ein Gebiet, wo die Dinger sehr brauchbar sind, ein Beispiel, das Taipi88 gegeben hat. Und nein, ein Thread ist kein Programm. (Sondern das hier.) Einfrieren bedeutet einfrieren. Eine Benutzerschnittstelle, die mit einer langwierigen BErechnung beschäftigt ist und deshalb keine Eingaben entgegennimmt. Das hat mit der CPU nichts zu tun.

Danke MarsStein für deine Antwort. Diese Reactive Extensions für 3.5 kennst du da ein download-link? Und diese nuget console (die ich nicht zum starten bekomme), brauch ich die dann überhaupt?

Du hast bestimmt schon einmal http://www.nuget.org besucht, nicht wahr?

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

-
-Dirk- Themenstarter:in
6 Beiträge seit 2017
vor 6 Jahren

LaTino, bitte spar dir die Kommentare:

Dunning-Kruger usw. Behalt es einfach für dich, interessiert mich wirklich nicht was du denkst, ist mir auch zu dumm und zu kindisch weiter drauf einzugehen. Ich komm schon ganz gut klar 😉

Du hast bestimmt schon einmal
>
besucht, nicht wahr?

erstes Posting oben, da du es aber vermutlich gar nicht gelesen hast...

Eine Benutzerschnittstelle, die mit einer langwierigen BErechnung beschäftigt ist und deshalb keine Eingaben entgegennimmt. Das hat mit der CPU nichts zu tun.

Nichts mit der CPU? Ja dann..

ich glaube du bist hier im Thread der einzige, der das Programmieren als Hobby betreibt.

Soll es geben, soll es geben...

@Sir Rufo

mit Win10 nur beim Entwickeln ein wenig in Kontakt. Somit sollte die "Kontamination" im Rahmen bleiben.

Die Kontamination wäre aber da 😉
Ernsthaft, auf meinen Rechner den ich beruflich brauche werde ich einen Teufel tun und da Software zu installieren die nichts mit dem Beruf zu tun haben. Davon ab, VM Ware ist zwar kostenlos, Win10 aber nicht..

UNIX ist das Betriebssystem der Zukunft. Und das schon seit 48 Jahren.

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

nein es geht nicht nur um UI-Oberflächen - Tasks und Threads sind sicher auch bei Konsolenanwendungen interessant - wär doch ziemlich blöd, wenn du eine Aufgabe startest die mindestens mal 10 Minuten dauert - und in der Zwischenzeit nichts anderes mit der Anwendung machen kannst, weil du nur einen Thread benutzt.

Das Thema ist:
Startest du eine Anwendung - wird immer auch mindestens ein Thread gestartet für das Programm. Das ist der Hauptthread, den z.B. GUI und Konsole benutzen. Und damit dort weiterhin was passieren kann - selbst wenn du parallel iwas machst was halt richtig lang dauert oder auch nur die Eingabe verzögern würde - nutzt man Tasks und Threads.

Damit in einer Oberflächenanwendung das Fenster "einfriert" (nicht mehr reagiert) muss nicht die CPU überlastet sein - es reicht durchaus wenn du eine 5MB-Datei einliest und das aus welchen Gründen halt auch immer das z.B. 5 Sekunden dauert - und der User in diesen 5 Sekunden was mit deinem Fenster machen möchte - dass dein Fenster schlicht nicht reagieren kann, weil ja dein Thread mit was anderem beschäftigt ist. In diesem Fall merken das sowohl Windows als auch der User, was ja nicht gewollt ist. (Wenns all zu lang dauert bietet Windows hier sogar an dein Programm abzuschießen)

LG

Nachtrag 1 (ein weiteres Beispiel für Multithreading):
Es kann ja auch durchaus vorkommen, dass du auf Basis vorhandener Daten zwei von einander unabhängige Berechnungen vornehmen möchtest, die allerdings jede für sich 20 Minuten dauert.
Ohne Multithreading - dauert das ganze also 40 Minuten. Mit Multithreading: ca. 20 Minuten - einfach weil dein Computer ja mehr wie nur eine Sache auf einmal kann - dein Programm muss dies allerdings halt unterstützen. (Würde dir hier wirklich mal Wikipedia zu Multithreading empfehlen) - hab die Oberfläche nur benutzt, weil das üblicherweise der erste Punkt ist an welchem man mit Multithreading aus der beschriebenen Problematik zusammenstößt.

PS: Bin auch mehr oder minder Hobby-Entwickler - jedenfalls kein Profi - würde jedoch auch empfehlen das Lehrmaterial auf die Gegebenheiten abzustimmen - andernfalls wirst du nicht weit kommen bzw. vor Frust eher aufhören...

121 Beiträge seit 2016
vor 6 Jahren

Ich komm schon ganz gut klar 😉

Unfreundlich ist gar kein Ausdruck 8o

Wenn du klar kommst, dann lass uns doch mit deiner hochnäsigen Arroganz in Ruhe!

3.170 Beiträge seit 2006
vor 6 Jahren

Hallo,

Diese Reactive Extensions für 3.5 kennst du da ein download-link?

Nein. Die direkten Download-Links auf den Microsoft-Seiten sind tot.
Scheint es nur noch bei nuget zu geben, oder Du musst selbst suchen - aber wie ich bereits schrieb, wirst Du aller Wahrscheinlichkeit nach auf weiter Probleme stoßen.
Wenn Du diesen Plan weiter verfolgst, klinke ich mich an der Stelle wieder aus.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

-
-Dirk- Themenstarter:in
6 Beiträge seit 2017
vor 6 Jahren

@MrChangeLog

Wenn du klar kommst, dann lass uns doch mit deiner hochnäsigen Arroganz in Ruhe!

Noch to ein ganz toller Beitrag. Habe ich darum geben etwas anderes hier zu schreiben als zum Thema? Als zu Reactive Extensions für 3.5 oder vielleicht zu nuget? Warum hälst du dich nicht raus, deine Kommentare die nicht zum Thema passen interessieren mich nicht im geringsten.

@Taipi88,
Danke für die ausführliche Antwort. Verstanden worum es geht. Im Grunde, so tief werde ich in C# wohl nicht einsteigen. Für lange Berechnungen oder Algorithmen würde ich weiterhin C nehmen. Mir gehts wirklich nur um kleine Windows-Klick Programme. Visual C++ ist ja in VS2008pro auch verfügbar, nach einem Einstieg in C# werde ich mir dieses anschauen, vielleicht wird da ja angenehmer mit der Fenster Programmierung.

Dieses Thread, also bei C# VS 2008 scheint da zumindest was von unterstützt zu werden.

using System.Threading;

das geht noch, aber die Erweiterung/Unterfunktion Tasks:

using System.Threading.Tasks;

bietet er nicht an. Das scheint rein Net Framework 4.0 zu sein 😦

Und zur Benutzung, ich habe einige Quellcodes die das eben benutzen und die möchte ich halt laufen lassen zum durchtesten, deßhalb das ganze Theater

Nein. Die direkten Download-Links auf den Microsoft-Seiten sind tot.

Beim suchen fand ich auch nur tote Links 😦 Aber Danke für deine Hilfe

UNIX ist das Betriebssystem der Zukunft. Und das schon seit 48 Jahren.

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo zusammen,

bitte schweift nicht in irgendwelche Beleidigungen und persönliche Kommentare ab. Es gibt Regeln, die sollten von allen befolgt werden. Community-Regeln

Bleibt beim Thema, und das bitte sachlich!

Gruss

Coffeebean

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

Threads sind halt wie bereits von mir beschrieben ein üblicher Teil des Betriebssystems und essenziell, womit C# das natürlich unterstützen muss. (und sicher auch von Beginn an tat)

Tasks dahingehen sind ein neueres Konzept, die vieles einfacher machen - im Inneren aber dennoch Threads verwenden (können).

Für Threads kannst du dir folgendes ja mal anschauen:
https://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx

Wenn du Oberflächen schreibst - ist MultiThreading eigentlich nur in den seltensten Varianten uninteressant. Ob du nun eine WebRequest machst, eine Datei ausliest, Datenbank-Daten sammelst, oder ggf. sogar Signale von Geräten annehmen musst, etc. pp. - all das sollte nicht auf dem GUI-Thread stattfinden.

Was deine Ambitionen mit "Klick-Oberflächen" angeht - ist sicher deutlich übersichtlicher mit C# - der GC dürfte hier auch helfen. Nichts desto trotz:
Wenn du dir viel Arbeit ersparen willst - nimm den Link zum Online-Buch (von M.L.) und arbeite es erst mal durch - dann gewinnst du zumindest einen Überblick über das .NET-Framework, C# und entsprechende Features.

LG

T
2.219 Beiträge seit 2008
vor 6 Jahren

@-Dirk-
Tasks sind keine Erweiterung/Unterfunktion.
Dies ist ein Namespace auf .Net 4.0+ um die Task Klasse sowie die Klasse im Namespace Tasks zu nutzen.
Dein Vorhaben wird schon an deinem Verständnis von .Net scheitern.
Du musst auf eine neue .Net Version steigen um diese Namespaces zu verwenden.
Wenn du nur Oberflächen umsetzen willst, kannst du auch Windows Forms mit .Net 2.0 verwenden.
Läuft auch in VS 2008 mit Designer.

Aber deine sämtlichen .Net 4.0 Anleitungen kannst du dann schon aus rein technischen Gründen, nicht zum laufen kriegen.
Den die meisten Anleitungen ab .Net 4.0 verwenden dann auch exklusive Namespaces sowie die Klassen/Funktionen aus diesen .Net Versionen.
Entsprechend kann dir hier niemand wirklich helfen.

Ich für meinen Teil kann dir auch keine Empfehlungen geben, da du alle Empfehlungen scheinbar ignorieren willst sobald es um Windows 10 oder zusätzliche Software geht.
Micrsoft leistet auch keinen Support mehr für XP.
Entsprechend kannst du auch keine neueren .Net Versionen oder VS Versionen verwenden.

Ansonsten bleibt dir nur Linux mit Mono als Alternative.
Dort kannst du dann eingeschränkt auch mit Windows Forms arbeiten.
Aber dies dürfte auch nicht dein Ziel sein.
Weitere Alternativen kann ich dir nicht bieten/empfehlen, da du dich eben auf deinen Stand festgelegt hast, den du eben nicht mit aktuellen Techniken nutzen kannst.
Aber auch das ist rein technisch bedingt, was auch deine Probleme mit Windows 7/8/10 und deinen Uralten Anwendungen betrifft.

Wenn dir Fortschritt nicht passt, kannst du nur mit der alten Technik arbeiten die du hast.
Mehr kannst du im Endeffekt nicht verlangen.
Wir sinder auch nicht bereit dir weiter zu helfen, wenn du hier alle Lösungen ablehnst.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

P
1.090 Beiträge seit 2011
vor 6 Jahren

Bei einigen Sachen die es in 4.0 gibt kann man auch in 2.0 eine Lösung für finden, ist meist nur mehr Arbeit.
Statt einer Task kannst du einen z.B. Thread verwenden. stackoverflow:Equivalent Task in .NET 2.0

Wenn du dein Buch weiter benutzen möchtest, denke ich kannst du mit google da einige Workarounds finden.

Zu C# 2008 gibt es auch ein Open Book von Rheinwerk, verwende das doch einfach.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

1.040 Beiträge seit 2007
vor 6 Jahren

Genereller Tipp:

Wenn du eine Klasse/Namespace hast, siehst du in der Doku von Microsoft, ab wann es diese Klasse gab.
Version Information (System.Threading.Tasks.Task)

3.003 Beiträge seit 2006
vor 6 Jahren

LaTino, bitte spar dir die Kommentare:

Dunning-Kruger usw. Behalt es einfach für dich, interessiert mich wirklich nicht was du denkst, ist mir auch zu dumm und zu kindisch weiter drauf einzugehen. Ich komm schon ganz gut klar 😉

Du hast bestimmt schon einmal
>>
besucht, nicht wahr?

erstes Posting oben, da du es aber vermutlich gar nicht gelesen hast...

Ja, so etwas dachte ich mir. Lass mich dir helfen.

  1. Besuche www.nuget.org
  2. Gib oben in das Suchfeld ein: "Reactive Extensions"
  3. Klick den ersten Link "System.Threading.Tasks.Extensions" an.
  4. Klicke unten links "Download" an.
  5. Ändere die Erweiterung der heruntergeladenen Datei in ".zip".
  6. Entpacke die Datei.
  7. Profit.

Glückwunsch. Bist du sicher, dass diese Computer-Sache das Richtige für dich ist?

LaTino
EDIT: hängt an. (rx-main für 3.5)

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

463 Beiträge seit 2009
vor 6 Jahren

Ich bin raus hier - soviel Ignoranz und Besserwisserei vom TE habe ich selten erlebt..

4.931 Beiträge seit 2008
vor 6 Jahren

Wenn du wirklich mit Windows XP und .NET 4 arbeiten willst, dann kannst du auch "Visual Studio 2010 Express" benutzen (ich denke die "Pro"-Funktionalitäten benötigst du als Hobby-Entwickler nicht wirklich).
Es gibt noch einige Download-Seiten (Chip, Heise, ...).

PS: Und bzgl. der Updates bei XP ist gemeint, daß es um die fehlenden Security-Updates geht (wenn du damit im Netz unterwegs bist -> Malware, Trojaner, ...).

16.807 Beiträge seit 2008
vor 6 Jahren

Das Grundlegende Problem des Threaderstellers wurde hinreichend beantwortet.

Was in einem Forum nicht sein kann - und wir auch so nicht zulassen - ist, dass man Hilfe erwartet und dann Ratschläge in einem nicht zu akzeptierenden Ton ausschlägt.
Sowas braucht keine Community. Bitte benehmen oder einen anderen Spielplatz suchen.

Daher insgesamt, in Team-Absprache, ist der Thread zu.

Thema geschlossen