Все, я испытываю трудности с передачей struct
в конструктор класса.Я нахожусь в процессе многопоточности части существующего кода.В одном классе определена следующая структура:
SchemaFileRec[] m_TableList;
struct SchemaFileRec
{
public ArrayList saFile;
public ArrayList saImpTab;
public ArrayList saSheet;
// And others...
public int[] nColHead;
public int[] nSkipBeg;
public int[] nSkipEnd;
public string strADTFld;
};
Это используется в методе (старый метод, называемый ExecCmd
) для некоторой обработки.Я переписываю этот метод в класс;фактически подкласс BackgroundWorker
.По сути, я использую метод, который имеет дело с какой-то «длительной» задачей, и многозадачен.У меня есть:
public class ExecCmdsThredded : BackgroundWorker
{
// Global variables and constants.
private int nTable;
private List<int> kPrmArray = null;
private List<object> StructureArray = null;
private SpreadsheetGear.IWorksheet worksheet;
// Default constructor to handle thred properties.
public ExecCmdsThredded()
{
WorkerReportsProgress = true;
WorkerSupportsCancellation = true;
}
// Constructor to parse relevant parameters to worker.
// Or as an array of objects public ExecCmdsThredded(object[] _StructArr, etc.
public ExecCmdsThredded(List<object> _StructArr, List<int> _kPrmArr, ArrayList[] _saCmd,
int _nTable, SpreadsheetGear.IWorksheet _worksheet) : this()
{
this.nTable = _nTable;
this.kPrmArray = _kPrmArr;
this.StructureArray = _StructArr;
this.worksheet = _worksheet;
}
// ...
Теперь я хочу передать структуру сверху классу ExecCmdsThredded
через конструктор, но мне никогда не приходилось делать это раньше, и я не уверен, возможно ли так, как яхочешь сделать это?Я мог бы явно передать каждый компонент struct
, но я хочу избежать этого.
Спасибо за ваше время.