If you invoke the industrial software from your code, just lock the part of your code that calls the single threaded component like this:
public class ResourceAccessorClass
{
private object _lockObject = new object();
public void SafeAccess()
{
lock (_lockObject)
{
// Access thread-sensitive resources.
}
}
}
Msdn documentation on Thread Synchronization: http://msdn.microsoft.com/en-us/library/ms173179.aspx
If the industrial software is running continuously (not triggered by your code), it's more complicated though.