Weights and thresholds are set in order for the network to perform as well as possible. These are fed into the training algorithm of the network. This algorithm determines weights and thresholds in such a way that the distance between the set of outputs from the network and the desired sets of outputs from the examples is as small as possible. There is nothing to prevent the use of neural networks for domains requiring the handling of uncertainty. A Bayesian network consists of a set of nodes and a set of directed edges between these nodes.
Edges reflect cause-effect relations within the domain.
They shouldn't be. That is, we need the probability of having a fever if both symptoms are present and if the patient is completely healthy. So, you must for any node specify the strength of all combinations of states for the possible causes. Fundamentally, Bayesian networks are used to update probabilities when information comes in. Any node in the network can receive information as the method doesn't distinguish between inference in or opposite to the direction of the edges.