een thread aanmaken lukt niet ... :-(

Status
Niet open voor verdere reacties.

johanisbezig

Nieuwe gebruiker
Lid geworden
27 mrt 2013
Berichten
2
Momenteel ben ik bezig met een bestaand programma te "verbeteren"
er zit namelijk een probleem in dat na het testen, het printen van een label te lang duurt en daardoor de verdere afloop qua timing fout gaat...

ik had het lumineuze idee threading kan dit voor mij oplossen daar eenmaal al de test gedaan zijn ik het printen van de label gewoon in een ander thread kan steken ...

bij het aanmaken van de thread krijg ik volgende foutmelding:
"an object reference is required for the nonstatic field, methode, or property"

dit is de code die origineel gebruikt wordt:
tFinalLabel.PrintSuccess(sScaleIdP, tActivation.CalculateActivationCode(sScaleIdP), tEventParser.GetFamilyId(sScaleIdP), sTypeIdP, sSubtypeIdP);

ik probeer het te veranderen in :

public class PrintLabel
{
private FinalLabel tFinalLabel = new FinalLabel();
private string sPrintScaleId;
private string sPrintScaleChecksum;
private string sPrintFamily;
private string sPrintType;
private string sPrintSubType;

//public void PrintFinalLabel(string sScaleIdP, string sActivationCodeCheckSum, string sFamilyIdP, string sTypeIdP, string sSubtypeIdP)
public void PrintFinalLabel()
{
tFinalLabel.PrintSuccess(sPrintScaleId, sPrintScaleChecksum, sPrintFamily, sPrintType, sPrintSubType);
}
};


sPrintScaleId = sScaleIdP;
sPrintScaleChecksum = tActivation.CalculateActivationCode(sScaleIdP);
sPrintFamily = tEventParser.GetFamilyId(sScaleIdP);
sPrintType = sTypeIdP;
sPrintSubType = sSubtypeIdP;

Thread PrintThread = new Thread(new ThreadStart(PrintLabel.PrintFinalLabel()));
PrintThread.Start();


maar het gaat helemaal mis.. :-(

iemand die mij op weg kan helpen?
tnx
 
Hi Allen, ik heb het zelf opgelost.. maar of de oplossing geheel correct is weet ik niet ..
heb volgende gedaan:

deze binnen dezelfde class gezet:
private object PrintFinalLabel(string sScaleIdP, string sActivationCodeCheckSum, string sFamilyIdP, string sTypeIdP, string sSubtypeIdP)
{
FinalLabel tFinalLabel2 = new FinalLabel();
tFinalLabel2.PrintSuccess(sScaleIdP, sActivationCodeCheckSum, sFamilyIdP, sTypeIdP, sSubtypeIdP);

return 0;
}

en zo roep ik 'm aan:

Thread PrintFinalThread = new Thread(delegate()
{
PrintFinalLabel(sScaleIdP, sActivationCodeCheckSum, sFamilyIdP, sTypeIdP, sSubtypeIdP);
});
PrintFinalThread.Start();

en het werkt .. zelfs met 2 zulke soort labels tegelijk .. en m'n timing is van +5sec naar 50ms gegaan...

mocht het beter/netter kunnen graag even laten weten.. tnx
Johan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan