Put Frequent File I/O Operations Within A SyncLock Block?
Sep 14, 2009
Say I have some code that does this:
Public Function AppendToLogFile(ByVal s As String) As Boolean
Dim success As Boolean = True
Dim fs As IO.FileStream = Nothing
[Code].....
First of all: is it a problem that I have that Try/Catch/Finally block inside of a SyncLock?
Second of all: suppose this code runs, on an event, potentially many times within a small timeframe--say, ten times in one second. Is it OK to have it SyncLock like this, or would it make more sense to have it add a line to a Queue, and then write all the lines from the Queue to the file on a timer that goes off, say, every second?
View 2 Replies
ADVERTISEMENT
Nov 3, 2009
Is it possible to skip a code block when a synclock is active?
For instance:
A object of class Bicycle is used by thread 1 and has a synclock on it.
Then thread 2 comes along and needs to know if the lights of the bike are working. But if there is a synclock active then thread 2 just forgets about checking the lights and goes to make a delicious chocolate pie.
View 2 Replies
Jun 7, 2011
how to get the most frequent word in vb.net
View 4 Replies
Apr 14, 2010
I am using Synclock to prevent multiple threads from logging text messages to the same file at the same time, but this doesn't seem to work:I get frequent sharing errors on the logfile, within the synclock block.The Synclock is using the variable holding the filename, because it exists all the time and because it is always the same object, whatever class instance or thread I'm in.[code]Despite using Synclock and a Using block around the code, I keep getting this error in the sw.WriteLine(Msg) line:System.IO.IOException: The process cannot access the file '(filename)' because it is being used by another process.Should I use some other type of object than a string to synchronize on?I cannot use a user interface object (button or so) because it is a windows service project.It was written and compiled in Visual Studio 2008, but targeting the 2.0 framework because it has to be able to run on some old Win2000 machines.
View 12 Replies
May 18, 2011
I want to perform two hashing operations concurrently on a single file, without reading the file twice. Is there some way to share the FileStream between two synchronized hashing threads? For example:
Dim Stream As New IO.FileStream("...", IO.FileMode.Open)
Dim HashA, HashB As Byte()
Dim A = New System.Threading.Thread(Sub()
[code]....
Maybe some way of caching a stream? Trouble is, I don't want the entire file in memory at once (it could be many gigabytes in size) and I don't want the file read more than once, due to speed issues. I want the file cached only sufficiently to ensure that both threads can work.For example, suppose at some point in time, thread A had read 100k of the file, but thread B had only read 20k of the file. The portion of the file between 20k and 100k should be cached; but then progressively forgotten as thread B catches up. Then again, if thread B is too slow, we might still end up with hundreds of megabytes being cached.Maybe thread A should be made to wait while thread B catches up. Maybe the ReadByte() function of the stream should block for a while if one of the threads is too far behind?
View 13 Replies
Jun 5, 2011
The file operation calls are returning before they are actually complete, or the disk is being cached somehow. What is happening here is that a zipped file containing a number of files to be updated on the users machine has been unzipped and the filenames are returned in an array called 'newfiles'. Each actual file unzipped is temporarily preceded by a '~' character. We rename each existing file to <filename>.old, then delete all the old files. However, sometimes when the code runs, the old files are not deleted. The only explanation for this I can think of is that the second 'Fileexists' is not seeing the files because the filesystem has not caught up at that point. I've never seen this behaviour documented anywhere, though. It works fine when single-stepped.
For Each fn As String In newfiles
If .FileExists(fn) Then
'rename existing file to .old
delpath = Path.ChangeExtension(fn, "old")
.RenameFile(fn, delpath)
End If
'rename the new file to correct name i.e. remove "~"
[Code] .....
View 9 Replies
Nov 28, 2011
I have a small code that can start multiple threads in numerous numbers and these threads will perform some calculations and file operations (read and/or write) that are private to themselves (each of the calculations and file operations are independent).But I can not figure out how to make the connection for threads to file operations.
View 2 Replies
Nov 29, 2010
I am currently working on an application which requires reading, writing and modifying data from a TEXT file. I have searched a lot but was not able to find a simple way to achieve this. I have to use a standard VB form with textboxes for ths text file opearations. s
View 1 Replies
May 17, 2010
I would like to know if there is any opportunity in VB.Net to use atomic operations. Or Maybe there is an opportunity to check if a file is allready in use or opened.The reason why I ask is because I got a little application that I would like to log its actions. As the applications uses threads the method for writing the log file sometimes is trying to open the log-file more than once which leads to an exception.
View 3 Replies
Nov 29, 2010
I am currently working on an application which requires reading, writing and modifying data from a TEXT file. I have searched a lot but was not able to find a simple way to achieve this. I have to use a standard VB form with textboxes for this text file operations.
View 2 Replies
Feb 28, 2010
I'm trying to figure out some Excel automation. I have a form set up so the user can click on a label to open an Excel file (as a background process I guess) so the file isn't actually visible. Once they click on the "Convert to Count" button it will multiply all the values in Column B by 1,250 and put the output in Column C. Once it has finished this action, it makes the file visible so the user can choose to save it or not. Also, some users have Excel 2003 and some have 2007. Would it be possible to be able to load both xls and xlsx?[URL]..I must say I am very new with .NET and have a little bit of knowledge with VB6. I'm not sure where to even begin. I've looked up some ways to load an excel file but couldn't get it to work the way I need it to. Most of the ways I found were loading the file into a DataGridView. I don't want to use a DataGridView if I don't have to. Some of the files the users might be loading could have 10,000+ rows and that would take too long I think.
View 3 Replies
Mar 5, 2010
I'm reading in a binary format. Strings are in a string block at the end of the file.
In the format, each record has an integer that is the offset in the string block where the string is located.
I could use the BinaryReader.BaseStream.Position property to advance to the location of the string and read it, and then set the position back, but that seems like that would be messy to me.
View 1 Replies
May 11, 2010
Here's the problem, going back to an earlier project - I have a block of 'settings' text in TextBox3, and need to search my XML document for that block - I then need to ADD a settings block from TextBox5 AFTER the found settings block, without having the format messed up - This is the 'block' I am trying to search for:
[Code]...
Is this even possible? I've tried a few different coding procedures, but I can only seem to search for a single string part [ One line ], and the <SettingEntry> tag is used for every line in the XML...
View 11 Replies
Jan 8, 2011
I have a application which reads from ini at startup, What i want is a vb code that will block the user from opening the ini file manually, program could be running as service eg: C:config.ini. program should block the user from opening the file.
View 1 Replies
Sep 15, 2010
I was just wondering if mixing SyncLock blocks and Monitor.Enter/Exit statements is dangerous. I know SyncLock uses Monitor and a Try block in the background, but are there any problems with using the two together for thread synchronization?
View 1 Replies
Mar 24, 2011
Is there any way to block the file download dialog from appearing?
Im using the web browser control
So you know what I am talking about:[URL]...
View 2 Replies
Nov 16, 2010
Is there any other way to download a file without the entire program freezing? whenever i call my.computer.network.downloadfile the VB stops furthering to the next code allowing my game to run choppily.
View 2 Replies
Apr 11, 2011
im using visual basic 2008 and a made a fully functional webbrowser useing the control. i have a huge list of ad servers and every different one is separated by an enter. i need a way for the program to read the file and block ads from loading.
View 1 Replies
May 28, 2012
I am pretty new to multi-threading in general and I would like to know how can I lock a shared integer variable to not be accessed by other threads while it is read/updated by an other thread.When I try do do SyncLock myInteger, I get that error : Error 6 'SyncLock' operand cannot be of type 'Integer' because 'Integer' is not a reference type.
Here a simplified example of what I mean
Private Shared myInteger As Integer
Private Sub MySub()
SyncLock myInteger ' This does not work
' read/write a new value to myInteger
End SyncLock
End Sub
MySub is called by multiple instances of the class, and running in multiple threads?
View 1 Replies
Mar 25, 2011
Is there simple way to SyncLock an object that can be null? And before you ask for it, yes, I know that it isn't logical to perform a SyncLock on a null variable. However, that would simplify my code because right now, I have no choice but to perform a null check all over the place before calling a SyncLock.
[Code]...
View 3 Replies
Sep 7, 2010
If I have two Synclocks
synclock a
synclock b
end synclock
[code].....
View 1 Replies
Apr 13, 2011
I was wondering if this is known / expected behavior. By design?Is it documented somewhere?
My 'real' code does need something to keep one thread from accessing a listview while another is busy clearing and refreshing the Items collection, so it's not as easy as omitting the synclock section in the example below (The SyncLock in my case is on the ListView).
This code, which can be pasted over a new empty form's user code class, deadlocks during the Invoke call. It doesn't reach the entry point of SetText (setting a brakpoint there, the deadlock occurs before the breakpoint is hit).[cod]e...
View 4 Replies
Aug 3, 2009
I have an application that requires several threads, otherwise the main UI thread would end up frozen.i am after a little advice as i have not really don alot of threaded applications.
First Question;
I have a thread which handles data coming in from the serial port( this wil become much more complicated), is it safe to use a synclock on the serialport object : -
[code]...
View 3 Replies
Jan 7, 2011
Suppose I have a byte array, Private Data as Byte(). This array is private within a class. The class provides public functions for reading and writing to Data. This class can be accessed by multiple threads, so I want to avoid a situation where reading from it and writing from it don't happen at the same time.
For now, I am using SyncLock to avoid issues. Can I put SyncLock Data in just the write functions, or does it need to be in the read functions? Or, both? I don't have a specific code example in mind. I am just curious if there is any benefit to locking for both read and write functions if the writing functions' SyncLock will make writing have exclusive access to it in the first place.
View 2 Replies
Oct 24, 2009
I'm trying to SyncLock my DataTable, to avoid problems with multithreading and stuff. But it doesn't seems to work. I'm trying to lock a DataTable wich is acceseed inside a nested for-loop:
vb.net
SyncLock radiolopere
For Each row As DataRowView In tableview
[code].....
View 4 Replies
Oct 17, 2010
I have a block of HTML which I want to write to a file. It contains about 30 lines and it's difficult to escape all the double-quotes in individual WriteLine statements. In PERL, I can do something like the following to write inline HTML and print everything upto <<OUTFILE to outfile as-is, is that possible in VB .Net 2008?
print <OUTFILE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>GSC Signature</TITLE>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 9.00.7930.16406"></HEAD>
<BODY><<OUTFILE
I could save the HTML in a template file and copy it into a new file each time, but that's not very flexible.
View 7 Replies
Nov 16, 2010
I have a class that contains a List(of T) used in a multithreaded application. I have three methods Get, Add and Remove where these access and modify the List(of T). I was using SyncLock to lock m_List any time I queried it for the desired object as well as when I added or removed objects. However I'm curious as to if there is a performance gain by simply locking m_List when I add an object or remove an object as opposed to when I'm searching for a desired object?
[Code]...
View 1 Replies
Apr 22, 2011
I have a List of objects shared by multiple threads, it sometimes generate IndexOutOfRangeException when trying to Clear. While searching for solution I found that I should use SyncLock while accessing the List. But my question if what is the importance of lockObject in SyncLock block
E.g. while clearing myList
Can I use
Synclock myList
myList.Clear
End SyncLock
or lockObject should be different from myList?
What I think about sysnclock is "lock is obtained for object specified as lockObject". What if I specify list to be cleared as lockObject, shouldn't the compiler supposed to obtain the exclusive access to list before clearing it ?
View 1 Replies
Mar 5, 2009
Once again Invoke has come back to haunt me! I have an application that has some background threads, serial communications and obviously a GUI. Now, the serial ports received incoming messages as events and these get processed and incoming data is logged both to a file and also appended to a RTB in the GUI (done using Invoke if InvokeRequired is true).Now, under normal circumstances everything is super happy and runs quite nicely but when stressed I reach some sort of deadlock.
What happens is I have two methods AddOutput and RemoveOutput. These both sync over an object SyncOutput As Object. When messages are received on the serial port they are processed and depending on whether or not a response is required AddOutput is called. This adds out going messages to a dictionary which is then accessed by a thread and the messages are sent out. If an acknowledgement message is received then the corresponding message in the dictionary is removed.
[Code]...
View 2 Replies
Oct 2, 2009
If completedOrders.Count <> 0 Then
For i = 0 To completedOrders.Count - 1
SyncLock completedOrders
'Do some work, for example this:
Dim text As String = completedOrders(0).getCN & " " & completedOrders(0).getDeviceName & " "
End SyncLock
Next
End If
Is a synclock needed before the if statement or for loop? In other words. When you call methods like .length or .count is it necessary to synclock them or can another thread be writing to it at the same time. CompletedOrders is a generic list of a class.
View 7 Replies