|
Goalie35 wrote: So, what's the correct way to compile my final version of a console application before handing it off to a user?
You dont have to publish anything (I think thats to do with click once). The content in the bin\Release directory should be sufficient
|
|
|
|
|
Visual Studio .NET allows you to specify files to be included in a deployment project (whatever your application might be). See details[^].
SkyWalker
|
|
|
|
|
I have to create a multithread program. It must control a pool of thread. How do I do this in C#?
The idea is: Reading a properties file, the program will know what kind of thead It will start. Each thread will take care about one subject. Each thread will receive a parameter indicating how many thread will have in its pool.
The MainThread will control the pool of thread, when it needs to process some UDP message will request a free thread in the pool. Will pass all of the information (data) to the thread and order to run. When the thread finishs its job will be in suspend mode waiting for next job.
I had develop this kind of program in Delphi and in Java with success! But in C# I did not find any way to do this.
Thanks.
+------+ +----------+
| | |Thread-UDP|-------> +------+
| .EXE |-----> |LISTENER | | T2 |
| | +----+-----+ +------+
+------+ | \
| \
\/ \
+-------+ +--------+
| T1 | | T3 +
+-------+ +--------+
|
|
|
|
|
There are a lot of tutorials on the topic.
You could start very well here[^].
SkyWalker
|
|
|
|
|
This [^] might help.
Google it up, there's a million more!
He who goes for revenge must first dig two graves.
|
|
|
|
|
This [^] might help.
Or, this[^]
Google it up, there's a million more!
He who goes for revenge must first dig two graves.
|
|
|
|
|
A while back I wrote a class named SynchronisedQueue[^] for parallel processing of Mandelbrot graphics.
The main thread could use it to send the jobs to the threads by simply adding it to the queue. The threads would periodically try to get something from the queue while they are idle.
The class for a thread could be something like:
public class WorkerThread {
public volatile bool Contine;
private SynchronisedQueue<Job> _jobs;
public WorkerThread(SynchronisedQueue<Job> jobs) {
Contine = true;
_jobs = jobs;
}
public void Run() {
while (Continue) {
Job job;
if (jobs.TryDequeue(out job)) {
} else {
Thread.Sleep(100);
}
}
}
}
The main thread creates a queue, then creates the objects for the worker threads and sends the queue along to the constructor.
If you need to send a result back from the worker thread to the main thread, you add another queue for the results. When the thread is done it just adds a result to the queue, and you have a timer in the main thread to look for results in the queue.
The code for dispatching the jobs gets really simple. There is no requesting of threads and handling the situation of waiting for a free thread, just throw the jobs in the queue, and the first thread that gets free grabs it.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
|
hi
i am using gridview control and in gridview control i have checkbox. when i click on linkbutton checkall then i want that check all checkbox and if i click on uncheckall then i wnat that uncheck all checkbox. how can i do using javascript? plz help?
thanks in advance.
|
|
|
|
|
Try the web forum.
But here is half the answer. You figure out what 'r' is
function SelectAll(sender)
{
var checked = sender.checked;
var ll = document.getElementsByName("r");
for (var i = 0; i < ll.length; i++)
{
ll[i].checked = checked;
}
}
|
|
|
|
|
I am trying to pass params from one function to another, but it errors out when passing the received args onto the other function! Scratched my head over this one and googled and can't find a solution!
Any ideas?
Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
public void WriteFormat(string format, params object[] args)
{
if (sb != null) sb.AppendFormat(format, args);
if (writer != null) writer.Write(string.Format(format), args);
}
|
|
|
|
|
FruitBatInShades wrote: if (writer != null) writer.Write(string.Format(format), args);
You have a closing parenthesis in the wrong place in the above line.
|
|
|
|
|
Hi,
I missed that one; a rare occasion where a syntactic mistake is not caught by the compiler, due
to the existence of overloads for both methods...
However if writer is say a TextWriter, the whole string.Format invocation is redundant, a simple
writer.Write(format, args) would have been sufficient.
|
|
|
|
|
Luc Pattyn wrote: a simple
writer.Write(format, args) would have been sufficient.
indeed it would.
|
|
|
|
|
That was it, well spotted! many Thanks
All working now! I just wanted to create library routines that render html to a StringBuilder or a HtmlTextWriter for duplicate rendering in ServerControls. Works out really well
|
|
|
|
|
Did you look at the value of format when the problem occurred?
Did you check args had a sufficient number of elements for it?
If so, why didn't you tell us their values?
Did you check at what exact line the exception occurs?
- an exception holds line information, you get to see it when you call Exception.ToString()
(but not when using Exception.Message).
- any half-decent IDE can display line numbers; to turn this on in Visual Studio, go to menu
Tools/Options/TextEditor/AllLanguages
|
|
|
|
|
Hello everyone,
I want to monitor the Http traffic (request and response) from IE on my local computer to some specific web site, I am especially interested in the special headers IE added in the communication.
Any tools to use? Are there any existing tools from Visual Studio?
thanks in advance,
George
|
|
|
|
|
|
Great, J4amieC!
I like this!
regards,
George
|
|
|
|
|
Hi Guys. I'm trying to add a column to an existing DataTable. When running the code I don't get no error message or anything but when checking the Table the column has not been added. Any ideas why?
Below the test code.
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = T:\Nasmeea\PSSZ.mdb";
conn.Open();
DataAdapter = new OleDbDataAdapter("Select * From [DivInfo]", conn);
DataTable dataTable = new DataTable("DivInfo");
DataColumn dValue = new DataColumn();
DataColumn dMember = new DataColumn();
dValue.ColumnName = txtboxColumns.Text;
dValue.DataType = Type.GetType("System.String");
dataTable.Columns.Add(dValue);
dataTable.Columns.Add(dMember);
conn.Close();
MessageBox.Show("Column Added");
Excellence is doing ordinary things extraordinarily well.
|
|
|
|
|
Edit: On second thought, I suspect it is far more complicated than what I initially wrote, and will now remove. Since this is an Access MDB, you need to add permanent tables and columns to the database using ActiveX data objects; I am reasonably certain you can not permanently add tables or columns to Access MDBs via OLEDB. I know there have been some posts on this subject recently in this forum, a search for those posts should show the way.
modified on Tuesday, July 29, 2008 9:15 AM
|
|
|
|
|
Hi pass. It didn't. I still don't get the Column created. I have changed the code as follows. I'm not sure if I am selecting the column.
private void btnAddColumn_Click(object sender, EventArgs e)
{
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = T:\Nasmeea\PSSZ.mdb";
conn.Open();
DataAdapter = new OleDbDataAdapter("Select * From [DivInfo]", conn);
DataColumn dValue = new DataColumn();
DataTable dataTable = new DataTable("[DivInfo]");
dValue.ColumnName = txtboxColumns.Text.ToString();
dValue.DataType = Type.GetType("System.String");
dataTable.Columns.Add(dValue);
dataTable.AcceptChanges();
conn.Close();
MessageBox.Show("Column Added");
}
Now, within the Database PSSZ.MDB i have an existing table called DivInfo. Am I connecting correctly to the database and dataTable in the above code? Sorry, should probably have also said that I have taken the code from a sample on the web but they don't mention any of the connection strings etc.
Excellence is doing ordinary things extraordinarily well.
|
|
|
|
|
Please see my edits to my original post.
I apologize for my misdirection.
|
|
|
|
|
Hi,
These are my review points.
1. You don't have a variable for DataAdapter.
2. What is the purpose of the DataAdapater if your codes are not filling this.
3. You don't have a columnName and data Type for dMember Variable.
4. Opening and Closing of Connection are not necessary for DataAdapter. Data
Adapter will automatically do this for you.
Here are the correct codes.
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = T:\Nasmeea\PSSZ.mdb";
conn.Open();
DataAdapter da = new DataAdapter("Select field1, field2 From [DivInfo]", conn);
DataTable dataTable = new DataTable("System_Setting");
da.Fill(dataTable);
DataColumn dValue = new DataColumn();
DataColumn dMember = new DataColumn();
dValue.ColumnName = "dValue";
dValue.DataType = Type.GetType("System.String");
dMember.ColumnName = "dMember";
dMember.DataType = Type.GetType("System.String");
dataTable.Columns.Add(dValue);
dataTable.Columns.Add(dMember);
conn.Close();
MessageBox.Show("Column Count:" + dataTable.Columns.Count.ToString());
MessageBox.Show("Row Count:" + dataTable.Rows.Count.ToString());
Regards,
modified on Tuesday, July 29, 2008 9:26 AM
|
|
|
|
|
Hi AMrk. Thanks for the information. I have tried the changes above and it still doesn't work.
Excellence is doing ordinary things extraordinarily well.
|
|
|
|